将2列中的值合并为pandas数据框中的单个列

发布于 2021-01-29 15:04:09

我正在寻找一种行为与T-SQL中的合并类似的方法。我有2列(列A和B)稀疏地填充在pandas数据框中。我想使用以下规则创建一个新列:

  1. 如果A列中的值 不为null ,则将该值用于新C列
  2. 如果A列中的 值为null ,则将B列中的值用于新C列

就像我提到的那样,这可以通过合并功能在MS SQL Server中完成。我还没有找到一个好的pythonic方法。是否存在?

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

    使用Combine_first()

    In [16]: df = pd.DataFrame(np.random.randint(0, 10, size=(10, 2)), columns=list('ab'))
    
    In [17]: df.loc[::2, 'a'] = np.nan
    
    In [18]: df
    Out[18]:
         a  b
    0  NaN  0
    1  5.0  5
    2  NaN  8
    3  2.0  8
    4  NaN  3
    5  9.0  4
    6  NaN  7
    7  2.0  0
    8  NaN  6
    9  2.0  5
    
    In [19]: df['c'] = df.a.combine_first(df.b)
    
    In [20]: df
    Out[20]:
         a  b    c
    0  NaN  0  0.0
    1  5.0  5  5.0
    2  NaN  8  8.0
    3  2.0  8  2.0
    4  NaN  3  3.0
    5  9.0  4  9.0
    6  NaN  7  7.0
    7  2.0  0  2.0
    8  NaN  6  6.0
    9  2.0  5  2.0
    


知识点
面圈网VIP题库

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

去下载看看