Impute Pandas Dataframe中由其他列分组的一列的平均值



我有一个数据框df:

<表类> 城市 领土地区区域销售tbody><<tr>奇科皮马斯普林菲尔德道明>国家58761奇科皮马斯普林菲尔德道明>国家65204奇科皮马斯普林菲尔德道明>国家79862喂养山斯普林菲尔德MA东北国家67247霍利约克马斯普林菲尔德道明>国家64347霍利约克马斯普林菲尔德道明>国家73473北安普敦马斯普林菲尔德道明>国家43349南哈德利斯普林菲尔德MA东北国家43551南哈德利斯普林菲尔德MA东北国家73633斯普林菲尔德马斯普林菲尔德道明>国家64025斯普林菲尔德马斯普林菲尔德道明>国家56670斯普林菲尔德马斯普林菲尔德道明>国家79424斯普林菲尔德马斯普林菲尔德道明>国家39118斯普林菲尔德马斯普林菲尔德道明>国家74262Leominster伍斯特马东北国家39348Lunenburg伍斯特马东北国家33119位于伍斯特马东北国家54086伍斯特伍斯特马东北国家79859伍斯特伍斯特马东北国家40721弗雷明汉伍斯特马东北国家79197弗雷明汉伍斯特马东北国家36837弗雷明汉伍斯特马东北国家66552弗雷明汉伍斯特马东北国家66355康科德伍斯特马东北国家78933Holliston伍斯特马东北国家37515哈德森伍斯特马东北国家49778

try this:

avg_sale = df.groupby('Region').agg(avg_sale_region=('Sales', np.mean))
df.merge(avg_sale, on='Region')

这是针对区域的,您可以对其他列执行相同的操作,例如city,…

for col in columns_you_want: #columns_you_want=['City', 'Region', ...]
avg_sale = df.groupby(col).agg(**{'avg_sale_by_'+col: ('Sales', np.mean)})
df = df.merge(avg_sale, on=col)

之后可以重命名列:

df = df.drop(columns=columns_you_want)
df = df.rename(columns={'avg_sale_by_'+col: col for col in columns_you_want})

相关内容

  • 没有找到相关文章

最新更新