熊猫 - 用NaN添加两列

时间:2018-04-16 22:08:31

标签: python pandas

我正在尝试使用NaN添加两列。

我想要的行为是:

  1. 如果两者都是NaN,则此列应为NaN
  2. 如果其中一个是数字,则该值应为数字(NaN被视为0)
  3. a = pd.DataFrame([1, np.NaN, 4, 5])
    b = pd.DataFrame([3, np.NaN, 5, np.NaN])
    
    a+b
    
    0   4.0
    1   NaN
    2   9.0
    3   NaN
    

    有没有办法做这个内置函数?

1 个答案:

答案 0 :(得分:3)

您可以使用pd.concat()代替建议的.add()功能(添加也可以,但对于多个cols不太方便。)

pd.concat((a,b), axis=1).sum(1, min_count=1)

考虑这个示例

import pandas as pd
import numpy as np

a = pd.Series([1, np.NaN, 4, 5])
b = pd.Series([3, np.NaN, 5, np.NaN])
c = pd.Series([np.NaN,np.NaN,np.NaN,np.NaN])

print(pd.concat((a,b,c), axis=1).sum(1, min_count=1))

#0    4.0
#1    NaN
#2    9.0
#3    5.0
#dtype: float64