python - 如何基于 Pandas 中的两列进行分组?

标签 python pandas dataframe group-by pandas-groupby

以前可能有人问过类似的问题,但我找不到适合我的问题的确切问题。 我想按基于两列的数据框进行分组。 例如做这个

id product quantity
1  A       2
1  A       3
1  B       2
2  A       1
2  B       1
3  B       2
3  B       1

进入这个:

id product quantity
1  A       5
1  B       2
2  A       1
2  B       1
3  B       3

表示相同“id”和相同“产品”的“数量”列的总和。

最佳答案

你需要groupby使用参数 as_index=False 返回 DataFrame 并聚合 mean:

df = df.groupby(['id','product'], as_index=False)['quantity'].sum()
print (df)
   id product  quantity
0   1       A         5
1   1       B         2
2   2       A         1
3   2       B         1
4   3       B         3

或添加reset_index :

df = df.groupby(['id','product'])['quantity'].sum().reset_index()
print (df)
   id product  quantity
0   1       A         5
1   1       B         2
2   2       A         1
3   2       B         1
4   3       B         3

关于python - 如何基于 Pandas 中的两列进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43222137/

相关文章:

python - 如何根据数据框中的相似行(字符串)删除数据框的某些行

Python pandas groupby 有条件地将字符串连接成多列

python - 以最小的内存占用拆分大型 Pandas Dataframe

python - 更快地读取 CSV 文件

python - 在 tox.ini 文件中列出继承?

python - 如何获得pandas数据框中k个连续行的总和?

python - 连接数据框列中的所有字符串

python - 如何使用python挖cname带@

python - 模块 'pandas' 没有属性 'DataFrame'

python - fixture 加载失败 : DoesNotExist: . .. 匹配查询不存在