我有两张桌子:
表1:(销售额)
代码 | 2025 | 2026 | 2027 |
---|---|---|---|
123 | 20000 | 21000 | 22000 |
456 | 10000 | 12000 | 14000 |
表2:(通货膨胀)
代码 | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | 2026 | 2027 | 2028 |
---|---|---|---|---|---|---|---|---|---|
123 | 0.6 | 0.7 | 0.8 | 0.9 | 1 | 1.1 | 1.2 | 1.3 | 1.4 |
456 | 0.55 | 0.65 | 0.75 | 0.85 | 1 | 1.2 | 1.3 | 1.4 | 1.5 |
通过使用Python,我想通过通货膨胀来更新表(1)的值。例如,对于代码“123”,年份“2025”,在通货膨胀前等于 20000。该值(20000)需要根据表(2)中的通货膨胀率进行更新,该通货膨胀率等于 1.1(表中第 123 行与第 2025 列的交集) (2))。其他值也一样。
结果表(1)应该是:
代码 | 2025 | 2026 | 2027 |
---|---|---|---|
123 | 22000 | 25200 | 28600 |
456 | 12000 | 15600 | 19600 |
您可以使用 df.columns 并将其相乘:
import pandas as pd
sales = {
'Code': [123, 456],
2025: [20000, 10000],
2026: [21000, 12000],
2027: [22000, 14000]
}
inflation = {
'Code': [123, 456],
2020: [0.6, 0.55],
2021: [0.7, 0.65],
2022: [0.8, 0.75],
2023: [0.9, 0.85],
2024: [1, 1],
2025: [1.1, 1.2],
2026: [1.2, 1.3],
2027: [1.3, 1.4],
2028: [1.4, 1.5]
}
dfs = pd.DataFrame(sales)
dfi = pd.DataFrame(inflation)
dfs.set_index('Code', inplace=True)
dfi.set_index('Code', inplace=True)
for year in dfs.columns:
dfs[year] *= dfi[year]
dfs.reset_index(inplace=True)
print(dfs)
Code 2025 2026 2027
0 123 22000.0 25200.0 28600.0
1 456 12000.0 15600.0 19600.0