pandas结合了两个字符串而忽略了nan值

发布于 2021-01-29 18:13:55

我有两列带有字符串。我想将它们结合起来并忽略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]但这似乎很可行。

关注者
0
被浏览
180
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    调用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
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看