在Pandas DataFrame中为每个groupby列添加行值

时间:2019-05-31 14:47:58

标签: python pandas dataframe

我有一个数据集,其中每个二进制信号的标志都有二进制值,如下所示:

>>> df = pd.DataFrame({'sinid':['abc','def','ghi','abc','ghi'],'flag1':[1,1,0,0,1],'flag2':[1,0,1,0,0]})
>>> df
  sinid  flag1  flag2
0   abc      1      1
1   def      1      0
2   ghi      0      1
3   abc      0      0
4   ghi      1      0

我想为每个sinid添加值,我想我需要groupby,但是不确定如何使用...

这是预期的结果:

  sinid  flag1  flag2
0   abc      1      1
1   def      1      0
2   ghi      1      1

3 个答案:

答案 0 :(得分:1)

分组依据,然后求和并重置索引。

df = df.groupby(['sinid']).sum().reset_index()
df

结果:

  sinid flag1   flag2
0   abc  1      1
1   def  1      0
2   ghi  1      1

答案 1 :(得分:0)

只需汇总分组的数据框:

df.groupby('sinid').sum()

    flag1   flag2
sinid       
abc     1   1
def     1   0
ghi     1   1

答案 2 :(得分:0)

这有效:

df.groupby(['sinid'])['flag1', 'flag2'].sum().reset_index()

  sinid  flag1  flag2
0   abc      1      1
1   def      1      0
2   ghi      1      1