你如何添加充满每个系列的熊猫系列'分别缺少值

时间:2016-06-17 17:55:33

标签: python pandas

如果我有两个系列:

import pandas as pd
import numpy as np

s1 = pd.Series([1, np.nan, 2, np.nan])
s2 = pd.Series([1, 2, np.nan, np.nan])

我想用s10的{​​{1}}缺少值来填充s2的缺失值。但如果两者都缺失,我想保留失踪。

我可以:

1

但这会返回:

s1.fillna(0).add(s2.fillna(1))

我想要:

0    2.0
1    2.0
2    3.0
3    1.0
dtype: float64

2 个答案:

答案 0 :(得分:2)

如果两者都缺失,我会覆盖你的结果:

In [22]: s1.fillna(0).add(s2.fillna(1)).where(~s1.isnull() | ~s2.isnull(), np.nan)
Out[22]:
0     2
1     2
2     3
3   NaN
dtype: float64

答案 1 :(得分:1)

我想你可以:

df = pd.concat([s1, s2], axis=1)
df[~df.isnull().all(axis=1)].fillna({c: c for c in df.columns}).append(df[df.isnull().all(axis=1)]).sum(axis=1)

得到:

0    2.0
1    2.0
2    3.0
3    NaN