我正在尝试寻找一种方法来为我的数据框实现“累积除法”功能。由于只有cumsum、cummax等,而没有“cumdiv”,有没有办法手动制作一个“累积除法”函数?
我看到这个问题divide value of next row and create column in dataframe但这对我不起作用。结果列中所有行的值为 1。
我应该注意到,我链接的问题的接受答案与我想要的结果类似,只是不是将底部索引除以上部索引,而是相反,其中底部索引除以上部索引。这将持续到索引结束。
Median ($)
Year
2009 2792
2010 2991
2011 3121
2012 3232
2013 3204
2014 3339
2015 3419
2016 3470
2017 3537
2018 3588
我试图将 2009 年的工资中位数除以随后几年的工资。因此,2009 年的工资除以 2010 年,百分比显示在新列中。 2011 年会重复这种情况,依此类推。
希望我能拍出更清晰的图片。
最佳答案
你可以这样做:
df['Median ($)'].divide(df.Median.iloc[0])
这给出了
Year
2009 1.000000
2010 1.071275
2011 1.117837
2012 1.157593
2013 1.147564
2014 1.195917
2015 1.224570
2016 1.242837
2017 1.266834
2018 1.285100
Name: Median, dtype: float64
现在一切都与格式化有关,即您可以减去 1 并乘以 100 等。取决于具体任务
关于python - DataFrame 中的累积除法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57815679/