Python Pandas-添加两个带有NaN的列

Python Pandas-添加两个带有NaN的列,python,pandas,Python,Pandas,我试图用NaNs添加两列 我想要的行为是: 如果两者都是NaN,则此列应为NaN 如果其中一个为数字,则该值应为数字(NaN被视为0) 有没有办法实现这个内置函数?您可以使用pd.concat()而不是建议的.add()函数(add也可以,但对于多个col来说不太方便) 考虑一下这个例子: import pandas as pd import numpy as np a = pd.Series([1, np.NaN, 4, 5]) b = pd.Series([3, np.NaN, 5,

我试图用NaNs添加两列

我想要的行为是:

  • 如果两者都是NaN,则此列应为NaN
  • 如果其中一个为数字,则该值应为数字(NaN被视为0)



  • 有没有办法实现这个内置函数?

    您可以使用
    pd.concat()
    而不是建议的
    .add()
    函数(add也可以,但对于多个col来说不太方便)


    考虑一下这个例子:

    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
    

    您可以使用
    pd.concat()
    代替建议的
    .add()
    函数(add也可以工作,但对于多个col来说不太方便)


    考虑一下这个例子:

    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
    

    a.add(b,fill\u value=0)
    内置函数add@Wen很好!想提交一个答案以便我给你一个复选标记吗?作为社区维基发布:-)因为它是重复的,很难找到它…这里有另一个可以接受任何数量系列的答案:
    pd.concat((a,b),axis=1)。sum(1)
    @AntonvBR请随意修改下面的答案:-)
    a.add(b,fill\u value=0)
    内置函数add@Wen很好!想提交一个答案以便我给你打勾吗?作为社区维基发布:-)因为它是重复的,很难找到它…这里有另一个可以接受任何数量系列的答案:
    pd.concat((a,b),axis=1)。sum(1)
    @AntonvBR请随意修改下面的答案:-)
    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