pandas结合了两个字符串而忽略了nan值
我有两列带有字符串。我想将它们结合起来并忽略nan
值。这样:
ColA, Colb, ColA+ColB
str str strstr
str nan str
nan str str
我试过了,df['ColA+ColB'] = df['ColA'] +
df['ColB']
但是如果任一列是nan,那都会创建一个nan值。我也考虑过使用concat
。
我想我可以解决这个问题,然后再使用一些,df.ColA+ColB[df[ColA] = nan] = df[ColA]
但这似乎很可行。
-
调用
fillna
并传递一个空的str作为填充值,然后sum
使用param
axis=1
:In [3]: df = pd.DataFrame({'a':['asd',np.NaN,'asdsa'], 'b':['asdas','asdas',np.NaN]}) df Out[3]: a b 0 asd asdas 1 NaN asdas 2 asdsa NaN In [7]: df['a+b'] = df.fillna('').sum(axis=1) df Out[7]: a b a+b 0 asd asdas asdasdas 1 NaN asdas asdas 2 asdsa NaN asdsa