u = (df[['Col1']].join(df.drop("Col2",1).groupby('Col1').pct_change()
.mul(100).round())
.dropna().assign(Col2="Growth%"))
out = df.append(u,ignore_index=True)
print(out)
Col1 Col2 Feb Jan Mrz Total
0 A 2019 200.0 100.0 300.0 600.0
1 A 2020 300.0 200.0 400.0 900.0
2 B 2019 20.0 10.0 30.0 60.0
3 B 2020 30.0 20.0 40.0 90.0
4 C 2019 2000.0 1000.0 3000.0 6000.0
5 C 2020 3000.0 2000.0 4000.0 9000.0
6 A Growth% 50.0 100.0 33.0 50.0
7 B Growth% 50.0 100.0 33.0 50.0
8 C Growth% 50.0 100.0 33.0 50.0
您可以将^{} 与
groupby
一起使用注意-这是假设数据是按
Col1
和Col2
排序的,如果不是,您可以先使用df = df.sort_values(by=['Col1','Col2'])
对数据进行排序相关问题 更多 >
编程相关推荐