Pandas计算行的增长百分比

2024-04-26 00:45:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建了以下pandas数据框架,并尝试计算Col2中给出的年份之间的增长百分比:

^{tb1}$

包含结果的表格应如下所示(请参见最后3行):

^{tb2}$

有没有一种方法可以使用pandas函数计算生长率值

我不明白-(


1条回答
网友
1楼 · 发布于 2024-04-26 00:45:26

您可以将^{}groupby一起使用

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

注意-这是假设数据是按Col1Col2排序的,如果不是,您可以先使用df = df.sort_values(by=['Col1','Col2'])对数据进行排序

相关问题 更多 >

    热门问题