我试图在两个数据帧之间进行简单的内部连接
我的第一个数据框是product data,它是包含产品子集信息的较大产品数据表的子集。我使用SKU Barcode
作为唯一标识每个产品的主键。这是productDataRows.info
:
RangeIndex: 1489 entries, 0 to 1488
Data columns (total 7 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 SKU Barcode 1489 non-null float32
1 Brand 1489 non-null category
2 Title 1489 non-null object
3 Size 1489 non-null category
4 Category 1489 non-null category
5 Image URL 1489 non-null object
6 Cost 1489 non-null float32
dtypes: category(3), float32(2), object(2)
我的第二个数据框架是市场研究信息,涉及产品的个人销售数据。一个产品将有许多关于它的记录,因此SKU条形码在该表中充当外键。这明显大于另一个表。这是marketResearch.info
:
RangeIndex: 28522436 entries, 0 to 28522435
Data columns (total 5 columns):
# Column Dtype
--- ------ -----
0 SKU Barcode float32
1 Platform Code category
2 Price int16
3 Rank int32
4 Epoch Time int64
dtypes: category(1), float32(1), int16(1), int32(1), int64(1)
memory usage: 516.8 MB
由于productDataRows仅包含全部SKU条形码的子集,因此我需要查找marketResearch中与productDataRows表中的SKU条形码相对应的所有记录,这些记录的平台代码与局部变量platform
匹配并获取关于它们的市场调查,同时过滤掉市场调查中不在产品数据行表中的任何记录
我尝试了一些方法,这是我最新想到的:
marketResearchRows = marketResearch[(marketResearch['SKU Barcode'] == productDataRows['SKU Barcode']) & (marketResearch['Platform Code'] == platform)]
这将抛出错误:
ValueError: Can only compare identically-labeled Series objects
我读到这可能是因为这两个表没有相同的列,但我如何才能绕过这一点?我曾尝试合并这些表,然后删除值,但我的市场研究表太大,这一事实在执行此操作时引发了许多MemoryError
错误
有人会认为这是一项简单的任务,但我已经尝试了很多事情,遇到了很多麻烦
目前没有回答
相关问题 更多 >
编程相关推荐