python - 用 df2 列值替换 df1 列值 - df-1 column-3 的值是 df-2 的列
问题描述
df-1 column-3 的值是 df-2 的列。我想用 df-2 中的相应值替换 df1 column-3 值,并以 col1 作为索引。
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
我可以通过将数据框转换为列表列表、处理它并再次将列表列表转换为数据框来实现这一点。但是我想知道有没有什么办法可以直接完成这个任务?
解决方案
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
推荐阅读
- c# - 如何解决错误 MSB4041(VS2017、C#、MSBuild、SpecFlow.Tools.MsBuild.Generation、SpecRun)?
- javascript - 通过 JavaScript 打开一个 msg 文件到 Outlook
- makefile - 如何将字符串与终端的值连接起来?
- php - Laravel 加载特定资源的所有关系
- terminal - 如何自动运行 VSCode 自己的内置命令
- ios - 当 pjmedia_conf_connect_port 在 pjsip 中执行 SIGABRT 时,记录调用崩溃
- wix - 指定 TARGETDIR 的 Wix 安装程序
- excel - 如何制作每行单独包含的图表
- java - java.lang.NoClassDefFoundError: org/openqa/selenium/remote/codec/w3c/W3CHttpCommandCodec
- swift - 我有字典数组类型的 JSON 数据。如何使用 Codable 协议对其进行解码?