gpt4 book ai didi

pandas - Groupby Year 和其他列并根据特定条件 pandas 计算平均值

转载 作者:行者123 更新时间:2023-12-01 14:33:53 24 4
gpt4 key购买 nike

我有一个如下所示的数据框

Tenancy_ID      Unit_ID             End_Date       Rental_value
1 A 2012-04-26 10
2 A 2012-08-27 20
3 A 2013-04-27 50
4 A 2014-04-27 40
1 B 2011-06-26 10
2 B 2011-09-27 30
3 B 2013-04-27 60
4 B 2015-04-27 80

从上面我想准备下面的数据框

预期输出:

Unit_ID   Avg_2011   Avg_2012  Avg_2013  Avg_2014   Avg_2015
A NaN 15 50 40 NaN
B 20 NaN 60 NaN 80

步骤:

  • Unit_ID = A,2012 年有两份契约(Contract),租金值(value)分别为 10 和 20,因此平均值为 15。

  • Avg_2012 = 2012 年的平均租金值(value)。

最佳答案

使用pivot_table直接与 s.dt.year

#df['End_Date']=pd.to_datetime(df['End_Date']) if dtype of End_Date is not datetime

final = (df.pivot_table('Rental_value','Unit_ID',df['End_Date'].dt.year)
.add_prefix('Avg_').reset_index().rename_axis(None,axis=1))

print(final)

Unit_ID Avg_2011 Avg_2012 Avg_2013 Avg_2014 Avg_2015
0 A NaN 15.0 50.0 40.0 NaN
1 B 20.0 NaN 60.0 NaN 80.0

关于pandas - Groupby Year 和其他列并根据特定条件 pandas 计算平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59911070/

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