我正在尝试为每个我分组的条目总结groupby对象中的列的值。
说我有这样的df:
Letters Numbers Items Bool
A 1 lamp 1
B 2 glass 1
B 2 table 1
C 5 pic 0
我用字母组合,然后想知道字母组中bool的总和。我该怎么做?我一直在尝试
df_new = df.groupby('letters').bool.sum()
...
df_new = df.groupby('letters').sum('bool')
和其他变化...
最后,我想得到一个包含每个字母组总和值的向量。对于前者,它将是[1,2,0]
。
答案 0 :(得分:3)
你真的很亲密!给定
>>> df
Letters Numbers Items Bool
0 A 1 lamp 1
1 B 2 glass 1
2 B 2 table 1
3 C 5 pic 0
您可以对所有内容求和并获取所需的列:
>>> # slower
>>> df.groupby("Letters").sum()["Bool"] # sum everything, select Bool
Letters
A 1
B 2
C 0
Name: Bool, dtype: int64
或者更好的是,只选择你想要的列并加以总结:
>>> df.groupby("Letters")["Bool"].sum() # select Bool, sum it
Letters
A 1
B 2
C 0
Name: Bool, dtype: int64
我更喜欢坚持使用Series
,因为您可以使用list
,但如果您愿意,可以使用list
或.tolist()
将其转换为{{1}}