将df1列值替换为df2列值-df-1列3的值是df-2列

时间:2018-07-11 18:02:55

标签: python python-3.x pandas dataframe

df-1列3的值是df-2列。我想用col1作为索引,用df-2中的相应值替换df1 column-3值。

df1 looks like:
col1    col2    col3
----------------------
label1  val1    A
label2  val2    NaN
label3  val3    B

df2 looks like:
col1     A      B
-------------------
label1   v1    NaN 
label2   v2    NaN
label3   v3    v2


final df1 should be:
col1    col2    col3
----------------------
label1  val1    v1
label2  val2    Nan
label3  val3    v2

我可以通过将数据帧转换为列表列表,对其进行处理,然后再次将列表列表转换为数据帧来实现此目的。但是我想知道有什么方法可以直接完成这项任务吗?

1 个答案:

答案 0 :(得分:1)

使用df.lookup()

df   = df.set_index('col1')
df_n = df.dropna()

df.loc[df_n.index, 'col3'] = df2.set_index('col1').lookup(df_n.index, df_n.col3)

        col2    col3
col1        
label1  val1    v1
label2  val2    NaN
label3  val3    v2