首页 > 解决方案 > 在 Pandas 中组合以下数据框的最简单方法

问题描述

基本上我有两个 Pandas 数据框 A 和 B,如下所示。将 A 和 B 结合起来得到 C 的最简单/计算速度最快的方法是什么?我目前正在使用for循环逐行迭代bag_name,但这对于大型数据帧可能会很慢。dfB

我怀疑 Pandas 中必须有一些内置方法来组合这些数据帧——如果有人问过这个问题,我很抱歉——我不知道要搜索什么关键字。

DataFrame A (dfA)
| bag_name | ID   | price |
|----------|------|-------|
| a        | asdf | 1     |
| b        | qwer | 2     |
| c        | zxcv | 3     |


DataFrame B (dfB)
| bag_name | item_name | weight |
|----------|-----------|--------|
| a        | t         | 2.3    |
| b        | y         | 2.4    |
| b        | u         | 2.5    |
| c        | i         | 2.6    |
| c        | o         | 2.7    |
| c        | p         | 2.7    |

DataFrame C (dfC)
| bag_name | ID   | Price | item_name | weight |
|----------|------|-------|-----------|--------|
| a        | asdf | 1     | t         | 2.3    |
| b        | qwer | 2     | y         | 2.4    |
| b        | qwer | 2     | u         | 2.5    |
| c        | zxcv | 3     | i         | 2.6    |
| c        | zxcv | 3     | o         | 2.7    |
| c        | zxcv | 3     | p         | 2.7    |

标签: pythonpandas

解决方案


您应该使用合并

dfC = dfA.merge(dfB, on='bag_name')

另一种选择是加入

dfC = dfA.join(dfB.set_index('bag_name'), on='bag_name')

推荐阅读