我正在尝试根据条件从另一个数据帧填充数据帧的列.假设我的第一个数据帧是df1,第二个数据帧命名为df2.
df1描述如下:
—— ——
| Col1 | Col2 |
—— ——
| A | 1 |
| B | 2 |
| C | 3 |
| A | 1 |
—— ——
而且:
df2描述如下:
—— ——
| Col1 | Col2 |
—— ——
| A | NaN |
| B | NaN |
| D | NaN |
—— ——
Col1的每个不同值都有一个id号(在Col2中),所以我想要的是填充df2.Col2中的NaN值,其中df2.Col1 == df1.Col1.
这样我的第二个数据框将如下所示:
df2:
—— ——
| Col1 | Col2 |
—— ——
| A | 1 |
| B | 2 |
| D | NaN |
—— ——
我正在使用Python 2.7
解决方法:
使用drop_duplicates
和set_index
和combine_first
:
df = df2.set_index('Col1').combine_first(df1.drop_duplicates().set_index('Col1')).reset_index()
如果只需要在id列中检查dupes:
df = df2.set_index('Col1').combine_first(df1.drop_duplicates().set_index('Col1')).reset_index()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。