gpt4 book ai didi

python - 为 B 列的每个值添加 A 列的平均值

转载 作者:行者123 更新时间:2023-11-28 22:40:24 24 4
gpt4 key购买 nike

假设您有以下 pandas 数据框 (df):

       A    B   C 
0 2 1 4
1 3 4 5
2 3 1 1
3 1 4 0
4 5 0 1

并且您想要为列 B 的每个不同值添加一个包含列 A 的平均值(或任何其他聚合函数)的列。您想要保留所有列。所以结果看起来像这样 (df_result):

       A    B   C   meanA_givenB
0 2 1 4 (2+3)/2
1 3 4 5 (3+1)/2
2 3 1 1 (2+3)/2
3 1 4 0 (3+1)/2
4 5 0 1 5 /1

我的做法如下:

import pandas as pd

meanA_givenB = df.groupby('B').A.mean()
df_result = pd.merge(df, pd.DataFrame(meanA_givenB),
how='left', left_on='A', right_index=True,
suffixes=['','_meanA_givenB'])

必须有一种更清洁、更高效的方法来做到这一点。

最佳答案

您可以使用 transform :

>>> df['avg(A)|B'] = df.groupby('B')['A'].transform('mean')
>>> df
A B C avg(A)|B
0 2 1 4 2.5
1 3 4 5 2.0
2 3 1 1 2.5
3 1 4 0 2.0
4 5 0 1 5.0

关于python - 为 B 列的每个值添加 A 列的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33727203/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com