如何基于熊猫的两列分组?

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”在“数量”列上的总和。

piR*_*red 6

你可以用pivot_tableaggfunc='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)


jez*_*ael 5

您需要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)