[英]How to calculate growth in percentage between rows in a Pandas DataFrame?
我有一个数据框,例如:
A B(int64)
1 100
2 150
3 200
现在我需要计算增长率并将其设置为附加列,例如:
A C
1 naN
2 50%
3 33.33%
我怎样才能做到这一点? 非常感谢你的帮助!
使用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%
您正在寻找pct_change
:
df['B'] = df.B.pct_change().mul(100).round(2)
df['B'] = df.B.where(pd.isna, df.B.astype(str).add('%'))
print(df)
A B
0 1 NaN
1 2 50.0%
2 3 33.33%
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.