1

我正在尝试为我分组的每个条目总结 groupby 对象中列的值。

假设我有一个这样的df:

Letters Numbers Items Bool
A       1       lamp  1
B       2       glass 1
B       2       table 1
C       5       pic   0

我对字母进行分组,然后想知道字母组中布尔值的总和。我该怎么做?我一直在努力

df_new = df.groupby('letters').bool.sum()

...

df_new = df.groupby('letters').sum('bool')

和其他变体...

最后,我想得到一个向量,其中包含每个字母组之和的值。对于 ex.,它将是[1,2,0].

4

1 回答 1

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,因为你可以用它做更多的事情,但你可以将它转换为listusinglist或者.tolist()如果你愿意。

于 2013-10-18T01:21:16.833 回答