python - 从其他数据集映射数据。 python Pandas

标签 python pandas merge mapping multiple-columns

所以我得到了 2 个数据集,df1 有所有水果的颜色,而 df2 没有。如何根据水果名称,根据 d1 的颜色数据映射 df2 的颜色值?

               df1                                  df2
Name               Color             Name              Color
Apple              Red               Orange            Na
Orange             Orange            Coconut           Na
Pear               Pear              Pear              Na
Pear               Pear              Strawberries      Na
Papaya             Papaya            Banana            Na
Watermelon         Watermelon        Papaya            Na
               "                  "                 "                 "

最佳答案

我认为你可以使用map ,但首先需要Series.drop_duplicates :

df2['Color'] = df2['Name'].map(df1.set_index('Name')['Color'].drop_duplicates())
print (df2)
           Name   Color
0        Orange  Orange
1       Coconut     NaN
2          Pear    Pear
3  Strawberries     NaN
4        Banana     NaN
5        Papaya  Papaya

另一个解决方案 mergeDataFrame.drop_duplicatesDataFrame.drop :

df2 = pd.merge(df2.drop('Color', axis=1),df1.drop_duplicates(), how='left')
print (df2)
           Name   Color
0        Orange  Orange
1       Coconut     NaN
2          Pear    Pear
3  Strawberries     NaN
4        Banana     NaN
5        Papaya  Papaya

关于python - 从其他数据集映射数据。 python Pandas ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39566992/

相关文章:

Python 如何使用 ExcelWriter 写入现有工作表

python - 在 Pandas 中使用多重索引过滤数据帧

python - 使用 pandas dataframe 绘制误差线 matplotlib

Swift 4 (BETA) 合并字典无法推断参数类型

excel - 将多个 csv 文件合并到一张 Excel 工作表中

python - 如何错误检查pyppeteer page.goBack()

python - 添加点击QLineEdit

Python:从列表创建数据框,其中每个新行都从特定的列表索引开始

python - Pandas 排序 lambda 函数

ruby + Git : Integrating Changes On A Significantly Divergent Branch