[英]How to use pandas to agg data with different condition for different columns?
Original Data:原始数据:
Sales![]() |
Product![]() |
Qty![]() |
---|---|---|
James![]() |
apple![]() |
10 ![]() |
Johnson![]() |
apple![]() |
1 ![]() |
Jessie![]() |
banana![]() |
2 ![]() |
Judy![]() |
melon![]() |
5 ![]() |
James![]() |
melon![]() |
5 ![]() |
Jessie![]() |
apple![]() |
8 ![]() |
To:到:
Sales![]() |
Apple![]() |
Melon![]() |
Banana![]() |
Total![]() |
---|---|---|---|---|
James![]() |
10 ![]() |
5 ![]() |
0 ![]() |
15 ![]() |
Judy![]() |
0 ![]() |
5 ![]() |
0 ![]() |
5 ![]() |
Jessie![]() |
8 ![]() |
0 ![]() |
2 ![]() |
10 ![]() |
Johnson![]() |
1 ![]() |
0 ![]() |
0 ![]() |
1 ![]() |
I'd like to calcuate the amount for each product and group by each sales with pandas, so how to do this by pandas?我想用熊猫计算每个产品和分组的金额,那么熊猫如何做到这一点?
With df as your dataframe name Try:使用 df 作为您的数据框名称尝试:
temp_df = df.pivot_table(index='Sales', columns='Product', aggfunc=sum)
cols = [ind[1] for ind in np.array(temp_df.columns)]
data = np.array(temp_df)
final_df = pd.DataFrame({'Sales':temp_df.index})
for i, col in enumerate(cols):
final_df = pd.concat((final_df, pd.DataFrame({col:data[:, i]})), axis=1)
final_df = final_df.fillna(0)
final_df['total'] = final_df.iloc[:, 1:].sum(axis=1)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.