首页 > 解决方案 > 通过匹配变量将值从一个 pandas 数据帧添加到另一个数据帧

问题描述

df假设我有一个带有 2 列的 pandas 数据框

           c1            c2
    0      v1            b1
    1      v2            b2
    2      v3            b3
    3      v4            b4
    4      v5            b5

第二个数据帧,df2包含 c1、c2 和其他一些列。

   c1 c2 c3  c4
0  "" b5 500 3
1  "" b2 420 7
2  "" b1 380 5
3  "" b2 470 9
4  "" b3 290 2

我的目标是将 df2 中 c1 的空值替换为 df 中的空值,对应于 c2 中的值,因此 df2 中 c1 的前五个值应分别为 v5、v2、v1、v2 和 v3。做这个的最好方式是什么?

标签: pythonpandasdataframematching

解决方案


您可以做的一种简单方法是使用基于相似列的熊猫合并。

df2.drop('c1', axis=1, inplace=True)
main_df = pd.merge(df2, df, on="c2", how="left")
df2['c1'] = main_df['c1']
df2.columns = ['c1','c2','c3','c4']


推荐阅读