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')

そして他のバリエーション...

最後に、各文字グループの合計の値を含むベクトルを取得したいと思います。例の場合、それは[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

より多くのことができるので、私は を使い続けることを好みますが、必要に応じてこれをusingSeriesに変換することもできます。listlist.tolist()

于 2013-10-18T01:21:16.833 に答える