微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – 将2列中的值合并为pandas数据帧中的单个列

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

>如果A列中的值不为null,请将该值用于新列C
>如果A列中的值为null,请使用B列中的值作为新列C

就像我提到的,这可以通过coalesce函数在MS sql Server中完成.我还没有找到一个好的pythonic方法;一个存在吗?

解决方法:

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐