ARA*_*ASH 3 python group-by dataframe pandas 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
Run Code Online (Sandbox Code Playgroud)
变成这个:
id product quantity
1 A 5
1 B 2
2 A 1
2 B 1
3 B 3
Run Code Online (Sandbox Code Playgroud)
表示相同“ id”和相同“ product”在“数量”列上的总和。
你可以用pivot_table与aggfunc='sum'
df.pivot_table('quantity', ['id', 'product'], aggfunc='sum').reset_index()
id product quantity
0 1 A 5
1 1 B 2
2 2 A 1
3 2 B 1
4 3 B 3
Run Code Online (Sandbox Code Playgroud)
您需要groupby带参数as_index=False的return DataFrame和aggregation 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
Run Code Online (Sandbox Code Playgroud)
或添加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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3659 次 |
| 最近记录: |