从另一个数据帧填充数据帧的列

Ken*_*nza 6 python dataframe pandas

我正在尝试根据条件从另一个数据帧填充数据帧的一列。假设我的第一个数据帧是 df1,第二个被命名为 df2。

# df1 is described as bellow :
+------+------+
| Col1 | Col2 |
+------+------+
|   A  |  1   |
|   B  |  2   |
|   C  |  3   |
|   A  |  1   |
+------+------+
Run Code Online (Sandbox Code Playgroud)

# df2 is described as bellow :
+------+------+
| Col1 | Col2 |
+------+------+
|   A  |  NaN |
|   B  |  NaN |
|   D  |  NaN |
+------+------+
Run Code Online (Sandbox Code Playgroud)

Col1 的每个不同值都有一个 id 号(在 Col2 中),所以我想要的是填充 df2.Col2 中的 NaN 值,其中 df2.Col1==df1.Col1 。这样我的第二个数据框将如下所示:

# df2 :
+------+------+
| Col1 | Col2 |
+------+------+
|   A  |  1   |
|   B  |  2   |
|   D  |  NaN |
+------+------+
Run Code Online (Sandbox Code Playgroud)

我正在使用 Python 2.7

jez*_*ael 2

drop_duplicatesset_index和 一起使用combine_first

df = df2.set_index('Col1').combine_first(df1.drop_duplicates().set_index('Col1')).reset_index()
Run Code Online (Sandbox Code Playgroud)

如果需要仅检查id列中的重复项:

df = df2.set_index('Col1').combine_first(df1.drop_duplicates().set_index('Col1')).reset_index()
Run Code Online (Sandbox Code Playgroud)