我有一个数据框,其中包含无限数量的列,稍后再定义。就像这样:
索引 | GDP | 2004 | 2005 | ... |
---|---|---|---|---|
巴西 | 1000 | 0.10 | 0.10 | ... |
中国 | 1000 | 0.15 | 0.10 | ... |
印度 | 1000 | 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增长百分比。
使用百分比来获取每年GDP的绝对数值,基于初始GDP。我需要一个像这样的数据框:
指数 | GDP | 2004 | 2005 |
---|---|---|---|
巴西 | 1000 | 1100 | 1210 |
中国 | 1000 | 1150 | 1265 |
印度 | 1000 | 1050 | 1155 |
我尝试使用itertuples、df.columns和for循环,但可能漏掉了某些东西。
请记住,列数是不确定的。
非常感谢您的帮助!
df.columns
。使用df.melt
将是一种更高级的方法。请查看相关文档。 - The Lazy Graybeard