Pandas:用d显示groupby聚合统计

2024-10-02 16:24:39 发布

您现在位置:Python中文网/ 问答频道 /正文

Data Snippet

我试图在数据框中添加一个新列,显示每个用户的平均购买量。数据帧称为trainDf,下面的代码行生成用户的平均值。我正在尝试学习如何添加它作为一个列显示类似于上面的图像

AveragePurchaseAmountUser = trainDf.groupby(by='User_ID')['Purchase_Amount'].mean()

提前谢谢你!在


Tags: 数据代码用户图像iddatabypurchase
3条回答

你可以试试:

trainDf['AveragePurchaseAmountUser'] = trainDf.groupby(['User_ID'])['Purchase_Amount'].mean()

这将返回带有新列的数据帧

def avg(df):
    df['Average_Purchase_Amount'] = df['Purchase_Amount'].mean()
    return df

newDf = trainDf.groupby(by='User_ID').apply(avg)

如果要将列作为一系列,可以应用此函数:

^{pr2}$

然后将列添加到DataFrame中

我会用merge

avg_df = trainDf.groupby(by='User_ID')['Purchase_Amount'].mean().reset_index().rename(columns={'Purchase_Amount': 'Avg'})
trainDf = trainDf.merge(avg_df, on='User_ID')

相关问题 更多 >