我有一个数据框,其中列数不确定,稍后定义,如下所示:
| 指标|国内生产总值|二○ ○四年|二○ ○五年|...|
| - ------|- ------|- ------|- ------|- ------|
| 巴西尔|一千|0.10分|0.10分|...|
| 瓷器|一千|0.15| 0.10分|...|
| 印度|一千|0.05分|0.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年起的列是浮动值,代表百分比,与每年的GDP增长有关。
使用百分比得到的绝对数量的国内生产总值在每一年,基于初始国内生产总值。我需要这样的数据框:
| 指标|国内生产总值|二○ ○四年|二○ ○五年|
| - ------|- ------|- ------|- ------|
| 巴西尔|一千|1100年|小行星121|
| 瓷器|一千|小行星1150|小行星1265|
| 印度|一千|小行星1050|小行星|
我尝试使用itertuples、df.columns和for循环,但我可能遗漏了一些东西。
- 请记住,列数是无限的。*
提前感谢您!
4条答案
按热度按时间hof1towb1#
我的答案是Wardy和user19* 的组合。
从...
找到百分比列并确保它们的顺序正确。
型
现在我们计算...
这将导致
kwvwclae2#
一个简单的方法是计算列数并循环:
它给出了
tpxzln5u3#
您可以使用
df.columns
访问 Dataframe 列的列表。然后你可以对所有的列名做一个循环。这里是一个数据框的例子,我把每个值乘以2。如果你想对不同的列做不同的操作,你可以在循环中添加条件。
这个返回...
希望这有帮助!
j9per5c44#
百分比加1;计算累积乘积;
乘以初始gdp。
如果您尝试更改原始DataFrame,请分配结果。
如果要创建新DataFrame,请将结果与原始DataFrame的前几列连接起来。
如果你愿意,可以把前两行放在一起。