计算数据框中的百分比变化值并替换旧值

问题描述

我有一个数据框

df = pd.DataFrame({'country': ['Austria','Austria','UK','UK'],'value': [22.0,24.4,21.8,22.6,108.3,110.5,113.0,113.1]})

并且我想计算行之间每个国家/地区的百分比变化。因此,我使用 for-loop 选择单个国家/地区子集 s 数据框,并使用 s.pct_change() 计算百分比变化: >

for country in df.country.unique():
        booleanInd = df.country.isin([country])
        s = df['value'][booleanInd]
        pct_change = s.pct_change()

但是,我不知道如何替换 value 列中的旧初始值,具体取决于它们的布尔索引,以及原始数据框中的百分比变化值 df.

结果应该是:

df = pd.DataFrame({'country': ['Austria','value': ['NaN',0.109091,-0.106557,0.036697,'NaN',0.020314,0.022624,0.000885]})

可能有比遍历国家/地区子集更快的解决方案。

在此先非常感谢您!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...