Pandas 熊猫,按重采样分组并用零填充缺失值
我有以下代码Pandas 熊猫,按重采样分组并用零填充缺失值,pandas,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
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
如何使用pandas执行此操作?与参数一起使用fill\u value=0
:
df = df.groupby('group').resample('D')['battle_deaths'].asfreq(fill_value=0).reset_index()
print (df)
group date battle_deaths
0 1 2014-05-01 34
1 1 2014-05-02 25
2 1 2014-05-03 0
3 1 2014-05-04 26
4 2 2014-05-01 15
5 2 2014-05-02 0
6 2 2014-05-03 15
7 2 2014-05-04 14
df = df.groupby('group').resample('D')['battle_deaths'].asfreq(fill_value=0).reset_index()
print (df)
group date battle_deaths
0 1 2014-05-01 34
1 1 2014-05-02 25
2 1 2014-05-03 0
3 1 2014-05-04 26
4 2 2014-05-01 15
5 2 2014-05-02 0
6 2 2014-05-03 15
7 2 2014-05-04 14