合并键在python中没有共同的值

时间:2015-09-28 20:25:04

标签: python merge key

我正在尝试合并两个数据文件产品并查看公共密钥“product_id”,这表明没有共同的价值 - 因此我得到了NaN渗透的合并表。

经过一番检查,我发现确实有共同的价值观。

代码: (出于某种奇怪的原因,文件产品上的名称“product_id”是'\ xef \ xbb \ xbfproduct_id')

product2=product[['\xef\xbb\xbfproduct_id','page_id']].sort('\xef\xbb\xbfproduct_id') 
review2=review[['product_id','review_id']]
tables=[product2,review2]
for item in tables:
    print item.head(5)
    print item.shape


      product_id  page_id
4028      1071569    39995
4435      1071570    42719
2519      1071571    27421
3992      1071572    39839
4018      1071574    39978
(4999, 2)
   product_id  review_id
0     1071569    1755406
1     1071569    1755407
2     1071569    1755408
3     1071569    1755409
4     1071569    1755410
(4999, 2)

product2["\xef\xbb\xbfproduct_id"][4028]==review2['product_id'][0]
True

这个简单的检查表明,至少'产品ID'1071569存在于两个表中。但是我试过了:

product2["\xef\xbb\xbfproduct_id"][4028] in review2['product_id']

它返回False。

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

您就是这样做的:

product2["\xef\xbb\xbfproduct_id"][4028] in review2['product_id'].values

如果有帮助,您可以将review2['product_id']可视化为字典,其中键是行号012...和该值是该行号的相应product_id on。因此,product2["\xef\xbb\xbfproduct_id"][4028] in review2['product_id']无效,因为它会搜索您幸运没有的行号1071569。如果您有一个更大的数据集,这将返回True,但这将是一个逻辑错误,因为您没有检查行号,但是您正在检查product_id product2数据框是否可用作为reviews2数据框的产品ID,无论reviews2上的行号是什么。