使用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)