Python Pandas-添加两个带有NaN的列
我试图用NaNs添加两列 我想要的行为是: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,
有没有办法实现这个内置函数?您可以使用
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