合并没有 NaN 的数据帧

Merging dataframes without NaNs

我正在尝试将 pandas 中的两个数据帧正确合并在一起,以便最终我可以获得正确的索引和列。

我的数据框看起来像这样

df1

df2 merged_df

merged_df 只是 df1(相同的索引和相同的单词列),除了它在右侧还有一个值列,它给出了每个单词的值。

此外,如果该词不在 df2 中,那么它将 return 在 merged_df 中的 NaN 值。

这看起来很简单,但我已经尝试了很多与 merge 方法的组合,但没有得到我需要的东西。

我想你正在寻找 map:

s = df1['word'].map(df2.set_index('word')['value'])
merged_df = df1.assign(value=s)

您还可以使用 .values 创建一个映射字典,然后调用 map:

mapping = dict(df2.values)
merged_df = df1.assign(value=df1['word'].map(mapping))