[英]Fill column of a dataframe from another dataframe
我正在尝试根据条件从另一个数据帧填充数据帧的一列。 假设我的第一个数据帧是 df1,第二个被命名为 df2。
# df1 is described as bellow :
+------+------+
| Col1 | Col2 |
+------+------+
| A | 1 |
| B | 2 |
| C | 3 |
| A | 1 |
+------+------+
和
# df2 is described as bellow :
+------+------+
| 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
列中检查欺骗:
df = df2.set_index('Col1').combine_first(df1.drop_duplicates().set_index('Col1')).reset_index()
这是过滤器df1.Col1 == df2.Col1
的解决方案
df2['Col2'] = df1[df1.Col1 == df2.Col1]['Col2']
使用loc
更好(但从我的角度来看不太清楚)
df2['Col2'] = df1.loc[df1.Col1 == df2.Col2, 'Col2']
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.