python - 总结具有重复列 Pandas 的多行

标签 python pandas

<分区>

考虑这个数据框

df = pd.DataFrame({'a': [1,2,1,3,4,2], 'c':['dd','ee','dd','as ','ae','ee'], 'count':[5,9,1,6,8,3]})

   a   c  count
0  1  dd      5
1  2  ee      9
2  1  dd      1
3  3  as      6
4  4  ae      8
5  2  ee      3

如您所见,“a”列中有重复项 1 和 2 重复了多次。

我想像在我们做 groupby 的 sql 中一样总结 pandas 中的此类计数。

我的最终 df 应该是这样的

   a   c  count
0  1  dd      6
1  2  ee      12
2  3  as      6
3  4  ae      8

我试过用 df = df.groupby('a') 但它正在返回我

<pandas.core.groupby.DataFrameGroupBy object

最佳答案

你需要groupbyac 列聚合 sum :

df = df.groupby(['a','c'], as_index=False)['count'].sum()
print (df)
   a   c  count
0  1  dd      6
1  2  ee     12
2  3  as      6
3  4  ae      8

但如果只需要groupby列a,则需要aggregate输出中需要的所有列 - 例如c 列由 firstcountsum 聚合:

df = df.groupby('a').agg({'c':'first', 'count':'sum'}).reset_index()
print (df)
   a   c  count
0  1  dd      6
1  2  ee     12
2  3  as      6
3  4  ae      8

关于python - 总结具有重复列 Pandas 的多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41464034/

相关文章:

python - 如何使用 3to2

python - 如何使用 Pandas 以更优化的方式将字符串值转换为-int值

python - PyQt5:为pandas表模型实现removeRows

Python 正则表达式。在一句话中找一句话

python - 更快地读取 CSV 文件

python - 如何使用列类型将pandas数据框插入elasticsearch?

python - Pandas 和 matplotlib : Different fonts between showfig and savefig (mac os x backend)

python - Pandas:如果字符串存在于几列中的任何一列中,我想对计数进行求和,并将该计数添加到具有搜索术语的另一个数据框中

python - 如何在 64 位 Linux 中构建 32 位 pypy JIT?

python - 一个 wsgi 应用程序吞噬了所有 apache 客户端