我正在尝试对我分组的每个条目的 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]
。
最佳答案
你们真的很接近!鉴于
>>> 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()
。
关于python - 对 groupby 对象的一组值求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19439989/