我有如下代码。
如何用pandas做到这一点?
import pandas as pd
data = {'date': ['2014-05-01', '2014-05-02', '2014-05-04', '2014-05-01', '2014-05-03', '2014-05-04'],
'battle_deaths': [34, 25, 26, 15, 15, 14],
'group': [1, 1, 1, 2, 2, 2]}
df = pd.DataFrame(data, columns=['date', 'battle_deaths', 'group'])
df['date'] = pd.to_datetime(df['date'])
df = df.set_index('date')
df = df.sort_index()
我希望能够按组统计战斗死亡人数,且日期没有任何间隔。类似于:
battle_deaths group
date
2014-05-01 34 1
2014-05-01 15 2
2014-05-02 25 1
2014-05-02 0 2 <--added with battle_deaths = 0 to fill the date range
2014-05-03 0 1 <--added
2014-05-03 15 2
2014-05-04 26 1
2014-05-04 14 2
我尝试了以下方法,但它并没有起作用(因为fillna方法不接受数字,但是我在这里添加它是为了展示我的意图)
df.groupby(df.group.name).resample('D').fillna(0)
如何用pandas做到这一点?