【问题标题】:How do I group rows in pandas? [duplicate]如何在熊猫中对行进行分组? [复制]
【发布时间】:2018-06-13 04:07:43
【问题描述】:

这是我尝试过的,也是我想要达到的结果。我正在使用 jupyter 执行此代码:

import pandas as pd

df = pd.DataFrame( {'a':['A','A','B','B','B','C'], 'b':[1,2,5,5,4,6]})

df

输出:

  a  b
0 A  1
1 A  2
2 B  5
3 B  5
4 B  4
5 C  6

我进一步尝试:

s = df[['a','b']].groupby(df['a']).sum()

     b
a
A    3
B    14
C    6

这类似于我在对行进行分组方面想要的,但我不明白为什么标签 b 会向上,它不应该与 a 在同一行吗?
此外,当我遍历s 时,我只会得到b,而当我彻底遍历a['b'] 时,我会得到所有数量。但是,我希望所有字母都说迭代 s['a'] 并得到 A,B,C 但这会引发错误。谢谢

【问题讨论】:

  • s = df[['a','b']].groupby(df['a']).sum().reset_index()?
  • df.groupby('a',as_index=False).b.sum()

标签: python pandas dataframe


【解决方案1】:

听起来你要找的是DataFrame.reset_index:

In [15]: df.groupby('a').sum().reset_index()
Out[15]:
   a   b
0  A   3
1  B  14
2  C   6

【讨论】:

    猜你喜欢
    • 2020-08-10
    • 2017-04-09
    • 2021-07-20
    • 1970-01-01
    • 2013-11-16
    • 2018-10-12
    • 2022-11-30
    • 2023-04-03
    • 2016-11-18
    相关资源
    最近更新 更多