python 两个NaN相加 引发的血案

使用pandas处理列的时候,尤其是在数字货币量化程序中,产生交易信号的情况,列采用了赋值的方式,没有交易的为空值,自然就是NaN。

当处理到两个NaN相加时,python2和python3就引发了区别。

需求: 两列数据相加,如果都为空,则结果为空;如果有一方不为空,则应该不为空。

 

# python2  这样相加即可 NaN + NaN = NaN ; 如果python3,则 Nan + NaN = 0
df['signal'] = df[['signal_long', 'signal_short']].sum(axis=1, skipna=True)
# python3 需要追加参数
# min_count=1意思是至少有1个非空的计算参数,不然就返回0,当然min_count=2也是可以的
df['signal'] = df[['signal_long', 'signal_short']].sum(axis=1, skipna=True,min_count=1)

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值