Python:Dataframe,groupby,但保留其他缺失的值
我的数据框看起来像这样:Python:Dataframe,groupby,但保留其他缺失的值,python,pandas,pandas-groupby,Python,Pandas,Pandas Groupby,我的数据框看起来像这样: date | status | value 0 2020-01 | true | 3 1 2020-01 | true | 8 2 2020-02 | true | 5 3 2020-01 | false | 1 4 2020-01 | false | 11 date | status | value 0 202
date | status | value
0 2020-01 | true | 3
1 2020-01 | true | 8
2 2020-02 | true | 5
3 2020-01 | false | 1
4 2020-01 | false | 11
date | status | value
0 2020-01 | true | 11
1 2020-02 | true | 5
2 2020-01 | false | 12
3 2020-02 | false | 0
对于大多数函数,我会调用groupby
df_group = df.groupby(['date', 'status'])[['value']].agg('sum').reset_index()
…并获得以下信息:
date | status | value
0 2020-01 | true | 11
1 2020-02 | true | 5
2 2020-01 | false | 12
但我试图达到的是一个数据帧,其中还列出了“缺失”值,如下所示:
date | status | value
0 2020-01 | true | 3
1 2020-01 | true | 8
2 2020-02 | true | 5
3 2020-01 | false | 1
4 2020-01 | false | 11
date | status | value
0 2020-01 | true | 11
1 2020-02 | true | 5
2 2020-01 | false | 12
3 2020-02 | false | 0
groupby
是否是正确的功能?与一起使用,同时删除[[]]
,而agg
只能使用sum
:
df_group = (df.groupby(['date', 'status'])['value']
.sum()
.unstack(fill_value=0)
.stack()
.reset_index(name='value'))
print (df_group)
date status value
0 2020-01 False 12
1 2020-01 True 11
2 2020-02 False 0
3 2020-02 True 5