Python 为什么DataFrame.to_dict在调用时返回不同的值?
我有一个Python 为什么DataFrame.to_dict在调用时返回不同的值?,python,pandas,Python,Pandas,我有一个数据帧,它似乎在以下方面表现不好(?): >>> a=z.to_dict(orient='records') >>> b=z.to_dict(orient='records') >>> a1=json.dumps(a) >>> b1=json.dumps(b) >>> a1 == b1 True >>> a == b False # <<<===== WHAT?!
数据帧
,它似乎在以下方面表现不好(?):
>>> a=z.to_dict(orient='records')
>>> b=z.to_dict(orient='records')
>>> a1=json.dumps(a)
>>> b1=json.dumps(b)
>>> a1 == b1
True
>>> a == b
False # <<<===== WHAT?!!!
>>> for i in xrange(z.shape[0]):
print i, a[i] == b[i]
0 True
...
9 True
10 True
11 True
12 False
13 True
14 True
...
20 True
21 False
22 True
...
29 False
30 True
...
40 True
41 True
42 False
43 True
44 True
...
50 False
51 True
52 False
...
a=z.to_dict(orient='records')
>>>b=z.to_dict(orient='records')
>>>a1=json.dumps(a)
>>>b1=json.dumps(b)
>>>a1==b1
真的
>>>a==b
错误#对于x范围内的i(z.shape[0]):
打印i,a[i]==b[i]
0对
...
9正确
10对
11对
12错误
13对
14对
...
20对
21错误
22对
...
29错误
30对
...
40对
41对
42错误
43对
44对
...
50个错误
51对
52错误
...
这是什么意思 @juanpa.arrivllaga搞定了。在浮点数据帧中,当单元格为
np.nan
np.nan==np.nan
时,计算结果为False
z = pd.DataFrame(np.random.randn(10, 10), columns=list('abcdefghij'))
z
什么是
a[12]
和b[12]
?可能是NaN
?因为对于=
,它将始终返回False
。但是,JSON字符串表示形式将是相等的。。。
a=z.to_dict(orient='records')
b=z.to_dict(orient='records')
a1=json.dumps(a)
b1=json.dumps(b)
a == b
True
a1 == b1
True
z.loc[5, 'd'] = np.nan
z
a=z.to_dict(orient='records')
b=z.to_dict(orient='records')
a1=json.dumps(a)
b1=json.dumps(b)
a == b
True
a1 == b1
False