我在多个条件下都受困于这种复杂的分组方式,如果能为您提供帮助,将不胜感激?
我需要这样的输出:
现在,我需要根据每个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)
此代码段需要很长时间。有没有更好的解决方案呢?