gpt4 book ai didi

python - 在选定列上创建数据透视表后的附加计算

转载 作者:行者123 更新时间:2023-12-01 01:03:08 25 4
gpt4 key购买 nike

我使用以下代码创建了一个数据透视表:

q2=q1.pivot(index='state', columns='year', values='wtrate')

其中我 reshape 了一个很长的数据集(每个州每年有 10 个观测值),并保存变量 wtrate 中的值。现在,我想计算不同时间段的复合年增长率(假设 2008 年至 2019 年以及 2014-2019 年)并将其添加为列。 (CAGR 为(最终值/初始值)^(1/n)-1,其中 n 是年数)。似乎我应该创建一个函数并使用 aggfunc 应用它,但我不确定如何执行此操作,因为我没有将该函数应用于表中的所有值,而是根据不存在的“列”进行选择更长的列。 (这引出了另一个问题,即:我可以按年份选择列吗?为什么这种数据透视表格式会阻止我这样做 - 例如,说 q2.2008 或 q2['2008'] 会导致错误。 )

感谢您的帮助。请参阅下面的数据透视表。

      year  2008    2009    2010    2011    2012    2013    2014    2015    2016    2017    2018    2019
state
Connecticut 14.377595 16.698319 18.170756 19.469117 21.618318 23.231428 24.135471 25.523063 26.424191 28.025954 35.782651 38.541251
Delaware 3.987193 4.816631 3.541428 3.744169 5.032608 6.912063 7.617630 8.013958 9.221290 11.234383 13.287280 14.908855
Illinois 9.297402 9.912991 9.694201 9.212093 10.322511 11.178365 17.523890 21.215137 21.982069 23.910823 24.702551 25.77111

抱歉,年份与列没有正确对齐,但我无法修复它。

最佳答案

这个怎么样?

cagr = lambda df, start, end: (df[end]/df[start])**(1/((end-start)+1))-1

q2['CAGR_08'] = cagr(q2, 2008, 2019)
q2['CAGR_14'] = cagr(q2, 2014, 2019)

关于python - 在选定列上创建数据透视表后的附加计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55620696/

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