我正在尝试合并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'
知道为什么吗?
答案 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
调用并保持参数列表相同