2组numpy数据对比时的异常

发布于 2022-09-07 21:27:05 字数 1747 浏览 24 评论 0

1、我在将2个dataframe表格的真实数据转化成numpy数据做列内容对比,遇到以下的情况:
input:

不同数组的单个元素

d12.values[0] [0],
d12.values[1] [0],
d11.values[0] [1],
d11.values[1] [1],

用其中一个数组的元素跟另外数组列去做矢量对比

d12.values[0] [0] == d11.values[:,1]

Output:
(u'u6db2/u7cbe/u7c89',
u'u6db2/u7cbe/u7c89',
u'u6db2/u7cbe/u7c89',
u'u6db2/u7cbe/u7c89',
False)

input:
d12.values[0] [0] == d11.values[0] [1],
d12.values[0] [0] == d11.values[1] [1]

Output:
(True, True)

不同数组中列中的一些元素单个对比时是一样的,但用单个元素跟另外数组矢量对比时返回全是False。
而自己另外建的测试数据做对比却很正常:
input:
d1 = pd.DataFrame([['x','c01','甲','1010'],['x','c01','甲','1020'],['x','c02','乙','1010'],['y','c02','乙','1020'],['y','c03','丙','1020'],['z','c03','丙','1030']],columns = list('abcd'))
d1

output:
clipboard.png

input:
d2 = pd.DataFrame([['x','20001','5层纸箱30cm'],['x','20002','1层纸箱50cm'],['x','20003','3层纸箱40cm'],['y','20004','内袋10克'],['y','20005','贴膜30克'],['z','20006','瓶子100克'],['z','20007','瓶子200克'],['z','20008','瓶子300克']],columns = list('aef'))
d2

ouput:

clipboard.png

input:
d2.values[0] [0] == d1.values[:,0]

output:
array([ True, True, True, False, False, False], dtype=bool)

问题:为什么一对一作比较是相同的情况,在一对多(整个数组)时返回的是全是False的结果?
补充一点,前面在做真实数据对比时还遇到这种报错(测试数据没有遇到):
D:Anaconda2libsite-packagesipykernel__main__.py:8: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal
后面设置一下:
import sys
reload(sys)
sys.setdefaultencoding('utf8')
报错没有了,但是就出现以上的问题。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

メ斷腸人バ 2022-09-14 21:27:05

看起来是字符串的编码问题,请把所有字符串转成 unicode 试一下。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文