gpt4 book ai didi

python - 如何对列数未定义的数据框进行数学运算?

转载 作者:行者123 更新时间:2023-12-05 05:30:13 25 4
gpt4 key购买 nike

我有一个数据框,其中有不定数量的列,稍后定义。像这样:

<表类="s-表"><头>索引国内生产总值<日>2004 <日>2005年 <日>... <正文>巴西10000.100.10...中国10000.150.10...印度10000.050.10...
df = pd.DataFrame({'index': ['brasil', 'china', 'india'],
'GDP': [1000,1000,1000],
'2004': [0.10, 0.15, 0.05],
'2005': [0.10, 0.10, 0.10]})

作为初始 GDP 的列 GDP,从 2004 年开始的列是 float ,代表百分比,与每年的 GDP 增长有关。

根据初始 GDP,使用百分比得出每年 GDP 的绝对数。我需要这样的数据框:

<表类="s-表"><头>索引国内生产总值<日>2004 <日>2005年 <正文>巴西100011001210中国100011501265印度100010501155

我尝试使用 itertuples、df.columns 和 for 循环,但我可能遗漏了一些东西。

记住列数是不确定的。

非常感谢您!

最佳答案

我的答案是 Wardy 和 user19* 的组合。

开始于...

df = pd.DataFrame(data={'GDP':   [1000, 1000, 1000],
'2004': [0.10, 0.15, 0.5],
'2005': [0.10, 0.10, 0.10],
'index': ['brasil', 'china', 'india']})

找到百分比列并确保它们的顺序正确。

columns_of_interest = sorted(c for c in df.columns if c not in ['GDP', 'index'])

现在我们计算...

running_GDP = df['GDP'] # starting value
for column in columns_of_interest:
running_GDP *= 1.0 + df[column]
df[column] = running_GDP

这导致

    GDP     2004    2005    index
0 1000 1100.0 1210.0 brasil
1 1000 1150.0 1265.0 china
2 1000 1500.0 1650.0 india

关于python - 如何对列数未定义的数据框进行数学运算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74748874/

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