简体   繁体   English

如何使用pandas为不同列聚合不同条件的数据?

[英]How to use pandas to agg data with different condition for different columns?

Agg by sales总销售额

Original Data:原始数据:

Sales销售量 Product产品 Qty数量
James詹姆士 apple苹果 10 10
Johnson约翰逊 apple苹果 1 1
Jessie杰西 banana香蕉 2 2
Judy朱迪 melon 5 5
James詹姆士 melon 5 5
Jessie杰西 apple苹果 8 8

To:到:

Sales销售量 Apple苹果 Melon Banana香蕉 Total全部的
James詹姆士 10 10 5 5 0 0 15 15
Judy朱迪 0 0 5 5 0 0 5 5
Jessie杰西 8 8 0 0 2 2 10 10
Johnson约翰逊 1 1 0 0 0 0 1 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM