python - 迭代多个数据帧的合并
问题描述
我正在尝试构建一个循环,它将采用单独的数据帧并在单个“主”数据帧上合并。
每个单独的数据框都乱序,我想将它们与主数据框的 CAS 列中的值对齐。
示例主数据框
示例数据框 1:
示例数据框 2:
[ ]
实际数据
解决方案
解决方案 1:
仅在 df1 和 df2 中使用 if 'value' 列,而不在 df_master 中使用。
dfcon = pd.concat([df1, df2])
df = pd.merge(df_master, dfcon, how='left', on='CAS')
解决方案 2:
如果“值”列也在 df_master 中,则使用。
df_master_drop = df_master.drop(columns=['value'])
df_drop = pd.merge(df_master_drop, dfcon, how='left', on='CAS')
df = df_master.combine_first(df_drop)
注意:如果有重复项,请使用 dfcon = pd.concat([df1, df2]).drop_duplicates('CAS')。这将保留最早的 CAS 值。
推荐阅读
- java - 从 SBT 资源文件夹中读取文件而不转义字符
- java - 无法在 Quarkus 上启动 gRPC 服务器 - 无法找到暴露 `BindableService` 的 bean
- c# - 如何在 C# 中将按钮名称添加到字典中?
- spring - 如何保护从 Azure API 管理到我的 Spring Boot REST API 的调用?
- python - 将数据添加到容器时的分区键错误请求 - python
- vue.js - 如何在 Vue 中测试命名空间的 mapAction
- xml - Powerpoint 自定义功能区中的锁定按钮
- amazon-web-services - AWS EMR luigi 管道生成 $folder$ 临时文件
- reactjs - 如何在 React 中使用没有地图的 MapboxGeocoder
- c# - 返回 302 重定向的异步控制器操作被下一个请求“取代”