Python 用df2列值替换df1列值-df-1列-3的值为df-2列
df-1第3列的值为df-2列。我想用col1作为索引的df-2中的相应值替换df1列-3的值Python 用df2列值替换df1列值-df-1列-3的值为df-2列,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,df-1第3列的值为df-2列。我想用col1作为索引的df-2中的相应值替换df1列-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
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
我可以通过将数据帧转换为列表列表,对其进行处理,然后再次将列表列表转换为数据帧来实现这一点。但我想知道有没有办法直接完成这项任务 使用
谢谢,工作很有魅力。我添加了reset_索引,使其成为一个完整的数据框架,其中包括作为列的索引。df.reset_索引(级别=0,就地=True)
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