dataframe中用一个比较每两个数字的增长率

本文介绍了一种使用Python pandas库来计算数据集中连续两天数据之间的百分比变化的方法。通过两种不同的方式实现:一种是利用map函数配合lambda表达式,另一种则是直接使用shift方法结合算术运算符。最终得到的数据框包含了原始数据以及计算出的百分比变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#========前一天减去上一天然后在除以前一天计算百分比=============
#==========1============
data=pd.DataFrame({'A':[1,3,5,7],
                   'B':[2,4,6,8]})
print(data)

data['百分率']=pd.Series(map(lambda x:((data['A'][x]-data['A'][x-1])/data['A'][x-1]),range(1,len(data['A']))))
'''
   A  B       百分率
0  1  2  2.000000
1  3  4  0.666667
2  5  6  0.400000
3  7  8       NaN
'''
print(data)
bb=list(data['百分率'])
bb.insert(0,np.nan)
data['百分率']=pd.Series(bb)
print(data)
'''
   A  B       百分率
0  1  2       NaN
1  3  4  2.000000
2  5  6  0.666667
3  7  8  0.400000
'''


#==========2============
#========前一天减去上一天然后在除以前一天计算百分比
data=pd.DataFrame({'A':[1,3,5,7],
                   'B':[2,4,6,8]})
data['百分比']=(data['A']-data['A'].shift(1))/data['A'].shift(1)
print(data)
'''
   A  B       百分比
0  1  2       NaN
1  3  4  2.000000
2  5  6  0.666667
3  7  8  0.400000
'''

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值