将按分组的DataFrame的列值展开为正确的列

问题描述

进行GroupBy操作后,我具有以下数据框:

DataFrame

根据需要,将user_id与它们各自的过道ID分组。现在,我想将aisle_id值转换为列,以user_id作为索引,并将所有aisle_id作为列。然后,在这些值中,我要具有user_id和aisle_id在先前的DataSet中匹配的次数。例如,如果user_id 1在3种情况下从过道ID 12购买,则DF [1,12]中的值为3。

使用Pandas数据透视表,我可以将user_id的模板作为索引,并将aisle_id的模板作为列,但是我似乎找不到找到创建上面指定值的方法

解决方法

考虑到您的第一个数据帧是df,我想您可以尝试以下方法:

df2=pd.DataFrame(index=df['user_id'].unique(),columns=df['aisle_id'].unique())
for i in df2.index :
  for j in df2.columns :
    df2.at[i,j]=len(df.loc[(df['user_id']==i) & (df['aisle_id']==j)])