有什么办法可以解决与熊猫聚合的多重条件分组吗?

我在多个条件下都受困于这种复杂的分组方式,如果能为您提供帮助,将不胜感激?

Input Dataframe : Input Dataframe

我需要这样的输出:

OUT put

现在,我需要根据每个unique_ID进行分组,并在其中获得IF_Car_with_History == 1,我需要每行的值总和和原始值的均值

现在,我正在尝试使用此代码来解决此问题,这需要花费时间:

    for i in data.Unique_ID.unique():
         df=data[data['Unique_ID']==i].reset_index(drop=True)
    idx=df[df['IF_Car_with_History']==1].reset_index()['index'].tolist()
    for s in idx:
     tmp=pd.DataFrame()
     hpa = df.iloc[s]["Transaction_ID"]
     tmp=df.iloc[:s]
     T_no = tmp["Transaction_ID"].iloc[-1]

     # print(tmp.columns)
     tmp=tmp.groupby(['Unique_ID'],as_index=False)\
         .agg(Value= ('Value','sum')\
               ,Amount= ('Amount','mean')).reset_index(drop=True)         
     # print(tm2)

     tmp["T_no"] = 0        
     tmp["T_no"][0] = T_no
     tmp["HPA"] = 0 
     tmp['HPA'][0]=hpa
     test_df = test_df.append(tmp)

此代码段需要很长时间。有没有更好的解决方案呢?

评论