Python 用Nan对两列求和
我在带有Nan的数据帧中有三列:Python 用Nan对两列求和,python,pandas,Python,Pandas,我在带有Nan的数据帧中有三列: >>> d=pd.DataFrame({'col1': [1, 2], 'col2': [3, 4], 'col3':[5,6]}) >>> d col1 col2 col3 0 1 3 5 1 2 4 6 >>> d['col2'].iloc[0]=np.nan >>> d col1 col2 col3 0 1
>>> d=pd.DataFrame({'col1': [1, 2], 'col2': [3, 4], 'col3':[5,6]})
>>> d
col1 col2 col3
0 1 3 5
1 2 4 6
>>> d['col2'].iloc[0]=np.nan
>>> d
col1 col2 col3
0 1 NaN 5
1 2 4.0 6
>>> d['col1'].iloc[1]=np.nan
>>> d
col1 col2 col3
0 1.0 NaN 5
1 NaN 4.0 6
>>> d['col3'].iloc[1]=np.nan
>>> d
col1 col2 col3
0 1.0 NaN 5.0
1 NaN 4.0 NaN
现在,我希望列addition具有以下输出:
>>> d['col1']+d['col3']
0 6.0
1 NaN
>>> d['col1']+d['col2']
0 1.0
1 4.0
然而,在现实中,输出是:
>>> d['col1']+d['col3']
0 6.0
1 NaN
>>> d['col1']+d['col2']
0 NaN
1 NaN
有人知道如何做到这一点吗 您可以使用fill\u value=0
来获取您的总和:
>>> d.col1.add(d.col2, fill_value=0)
0 1.0
1 4.0
dtype: float64
>>> d.col1.add(d.col3, fill_value=0)
0 6.0
1 NaN
dtype: float64
添加第1列和第2列时,请使用
系列。使用fill\u value=0添加
>>> d
col1 col2 col3
0 1.0 NaN 5.0
1 NaN 4.0 NaN
>>>
>>> d['col1'].add(d['col2'], fill_value=0)
0 1.0
1 4.0
dtype: float64
数据帧和数据系列具有如下方法:add
,sub
。。。为了执行比相关运算符更复杂的操作,+
,-
。。。可以提供
这些方法可以采用额外的参数来微调操作