我有一个数据框,例如:
A B(int64)
1 100
2 150
3 200
现在我需要计算增长率并将其设置为其他列,例如:
A C
1 naN
2 50%
3 33.33%
我该如何实现?非常感谢您的帮助!
答案 0 :(得分:1)
将Series.pct_change
与100
和Series.mul
乘以Series.round
并四舍五入:
df['C'] = df.B.pct_change().mul(100).round(2)
print (df)
A B C
0 1 100 NaN
1 2 150 50.00
2 3 200 33.33
要为百分比添加map
和format
,并使用NaN != NaN
处理缺失值:
df['C'] = df.B.pct_change().mul(100).round(2).map(lambda x: '{0:g}%'.format(x) if x==x else x)
print (df)
A B C
0 1 100 NaN
1 2 150 50%
2 3 200 33.33%