如何解决条件内部连接错误:“只能比较标记相同的系列对象”?
我正在尝试在两个 DataFrame 之间进行简单的内部连接。
我的第一个 DataFrame 是产品数据,它是包含产品子集信息的更大产品数据表的子集。我使用 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
错误。
人们会认为这是一项简单的任务,但我尝试了很多事情并且遇到了很多麻烦。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。