Pandas,isin为相等元素生成不同的结果

时间:2015-08-14 17:05:12

标签: python pandas

我有一个pandas DataFrame,我对列CAPSULE_TEXT特别感兴趣,前30行恰好具有相同的值:

visit_names['CAPSULE_TEXT'][:30]

0     宅配
1     宅配
2     宅配
3     宅配
4     宅配
5     宅配
6     宅配
7     宅配
8     宅配
9     宅配
10    宅配
11    宅配
12    宅配
13    宅配
14    宅配
15    宅配
16    宅配
17    宅配
18    宅配
19    宅配
20    宅配
21    宅配
22    宅配
23    宅配
24    宅配
25    宅配
26    宅配
27    宅配
28    宅配
29    宅配

此外,如果我将它们转换为bytearrays并按字节比较,它们仍然相等(因此没有额外的空格或任何unicode隐藏的魔法)。

我有另一个名为coupon_test的数据框,我想过滤我的第一个数据帧(visit_names),只保留第二个数据帧中存在的值。为此,我正在构建以下过滤器:

visit_names[['CAPSULE_TEXT']].isin(coupon_test[['CAPSULE_TEXT']])

然后我打算用它来过滤visit_names。但是,它生成的Series对前30个元素具有不同的值:

0   False
1   False
2   False
3   False
4   False
5   False
6   False
7   False
8   False
9   False
10  False
11  False
12  False
13  False
14  False
15  False
16  False
17  False
18  False
19  False
20  False
21  False
22  False
23  True
24  True
25  True
26  False
27  False
28  True
29  True

价值"宅配"实际上存在于coupon_test中。我的问题是为什么会出现这种情况? isin生成的系列的顺序是否与原始数据框的顺序不同?或者我以错误的方式使用isin

0 个答案:

没有答案