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
我可以通过将数据帧转换为列表列表,对其进行处理,然后再次将列表列表转换为数据帧来实现此目的。但是我想知道有什么方法可以直接完成这项任务吗?
答案 0 :(得分:1)
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