我有一个数据框,其中包含从 2017 年到 2021 年 5 年的一些价格指数。它看起来像这样:
| 国家 | 行业 | 年 | 指数 |
|---|---|---|---|
| 我们 | 农业 | 2017年 | 83 |
| 我们 | 农业 | 2018年 | 97.2 |
| 我们 | 农业 | 2019年 | 100 |
| 我们 | 农业 | 2020年 | 112 |
| 我们 | 农业 | 2021年 | 108 |
| 日本 | 矿业 | 2017年 | 88 |
| 日本 | 矿业 | 2018年 | 93 |
| 日本 | 矿业 | 2019年 | 100 |
| 日本 | 矿业 | 2020年 | 104 |
| 日本 | 矿业 | 2021年 | 112 |
我的基准年是 2019 年,因此标有 2019 年的每一行的索引都是 100。其他所有内容都会向上或向下移动。我想生成另一列,名为Percentage_Change显示从 2019 年作为基准年开始的同比变化。
然而,我尝试使用该pd.series.pct_change函数计算从 2017 年开始的同比百分比变化,并NaN为年份为 2017 年的所有行生成一个值,而不是 2019 年,而 2019 年应该是基准年。
我希望输出看起来像这样:
| 国家 | 行业 | 年 | 指数 | 变化百分比 … |
|---|
我有一个如下所示的数据框:
dict = {'companyId': {0: 198236, 1: 198236, 2: 900814, 3: 153421, 4: 153421, 5: 337815},
'region': {0: 'Europe', 1: 'Europe', 2: 'Asia-Pacific', 3: 'North America', 4: 'North America', 5:'Africa'},
'value': {0: 560, 1: 771, 2: 964, 3: 217, 4: 433, 5: 680},
'type': {0: 'actual', 1: 'forecast', 2: 'actual', 3: 'forecast', 4: 'actual', 5: 'forecast'}}
df = pd.DataFrame(dict)
companyId region value type
0 198236 Europe 560 actual
1 198236 Europe 771 forecast
2 900814 Asia-Pacific 964 actual
3 153421 …Run Code Online (Sandbox Code Playgroud) 我有一个看起来像这样的数据框
ID Date Period Account Amount1 Amount2
<chr> <chr> <chr> <chr> <chr> <chr>
1 76311099 43494 /1 P / ABC / 123456 NA 3116362
2 NA NA NA C100ST NA NA
3 66112599 37135 /26 S / ADR NA 1246880.3900000001
4 NA NA NA 65101599 / S0 NA NA
5 45461599 37155 /O6 B / INR / REVERSE NA 623440.19000000006
6 NA NA NA UNDO / S0 NA NA
7 69876599 37134 /O3 N / ABC 401.63 NA
8 19991099 …Run Code Online (Sandbox Code Playgroud)