Pandas - 关于合并的KeyError

时间:2016-05-15 19:34:44

标签: python

我正在尝试合并2个数据帧。我正在使用Jupyter笔记本和pandas数据帧。我的两个dfs看起来像这样:

gbdf.dtypes:
product_name            object
Quantity               float64
Product_id               int64
product_group1           int64
product_group1_name     object
product_group2           int64
product_group2_name     object
packing_unit            object
packing_amount           int64
dtype: object


trns.dtypes:
Store_id           int64
Date              object
Price              int64
Net price          int64
Purchase price     int64
Hour               int64
product_id         int64
Quantity           int64
dtype: object

然而,当我尝试运行时

gbdfprice = gbdf.merge(gbdf, trns, left_on = 'Product_id', right_on = 'product_id')

我得到了

KeyError: 'product_id'

知道为什么吗?

1 个答案:

答案 0 :(得分:0)

您使用的格式(接受左右DataFrame参数)是与pandas顶级模块关联的方法,但是您实际上使用了与DataFrame对象关联的方法只接受正确的论点。

import pandas as pd

left = DataFrame(...)
right = DataFrame(...)

#Method you have used
combined = left.merge(right, [options...])
#Method you have taken argument list from
combined = pd.merge(left, right, [options...])

从我在源代码中看到的内容,left.merge(right...)只需导入其他merge方法并运行merge(self,right,...)

所以,正如@ayhan指出的那样,修复只是从参数列表中删除gbdf,或者你也可以用gbdf.merge替换pd.merge调用并保持参数列表相同