Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么DataFrame.to_dict在调用时返回不同的值?_Python_Pandas - Fatal编程技术网

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