python - Pandas:在半重叠的列上连接两个数据框

标签 python pandas join dataframe

设置

假设我有两个 panda DataFrame:df1 ,其大小为 5 x Kdf2其尺寸为 3 x K ,

|  key | rest ...             |  key | rest ...
----------------              ----------------
|  A1  |   ⋮                  |  A1  |   ⋮
|  A2  |   ⋮                  |  A3  |   ⋮
|  A3  |   ⋮                  |  A4  |   ⋮
|  A4  |   ⋮
|  A5  |   ⋮

在我的实际数据集中,key包含名称(例如不是 A2 )并且半重叠不遵循任何模式。

<小时/> 问题

我要加入df1df2关于key列,该列在 A1 中“半重叠” , A3A5

<小时/> 计划

我想我可以将空行添加到 df2 ,例如两个空行到 df2值(value)A2A5对于 key ,然后加入 DataFrame。但是,然后我需要找出 df2 中缺少哪些行。 。

也许我可以构造一个for循环键,这会使用 for key 创建一个空行失踪An当没有关键匹配时?我不确定如何在两个数据帧上构建 for 循环。

也许有一个简洁的命令可以立即连接框架,填充空行?

编辑:刚刚意识到这可能是双向的,即 df2 中有 key 不在 df1 中。但我想运行一个循环,如首先“检查”来自 df1 的键所述。至df2然后检查 df2 中的 key 至df1应该可以。

最佳答案

对于“半重叠”连接,如果您的意思是保留结果中两个数据帧中不匹配的行,则使用外部合并:

df1.merge(df2, on='key', how='outer')

关于python - Pandas:在半重叠的列上连接两个数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43537370/

相关文章:

python - 在 pandas for python 中创建虚拟变量

join - SSRS折线图未连接数据点

java - 这个sql查询有什么问题导致这个错误?

python - Seaborn FacetGrid KDE 值错误

python - SciPy 曲线拟合失败幂律

python - 如何有效地比较 pandas DataFrame 中的行?

python - 按周将时间序列数据叠加在同一图上 - 修复我的多重索引?

mysql - Headi sql : sql error 1054

python - 如何在Python多模块的覆盖范围中排除目录

Python Boto S3 与 Amazon S3 中的自定义域一起使用