Indexing NaNs的问题:set_index()。reset_index()会损坏数据

Indexing NaNs的问题:set_index()。reset_index()会损坏数据,indexing,pandas,nan,Indexing,Pandas,Nan,我读到NAN是有问题的,但是下面的问题导致了我的数据的实际损坏,而不是错误。这是虫子吗?我是否遗漏了文档中的一些基本内容? 我希望第二个命令给出错误或与第一个命令给出相同的响应: ipdb> df year PRuid QC data 18 2007 nonQC 0 8.014261 19 2008 nonQC 0 7.859152 20 2010 nonQC 0 7.468260 21 1985 10 NaN 0.8614

我读到NAN是有问题的,但是下面的问题导致了我的数据的实际损坏,而不是错误。这是虫子吗?我是否遗漏了文档中的一些基本内容? 我希望第二个命令给出错误或与第一个命令给出相同的响应:

ipdb> df
    year  PRuid  QC       data
18  2007  nonQC   0  8.014261
19  2008  nonQC   0  7.859152
20  2010  nonQC   0  7.468260
21  1985     10 NaN  0.861403
22  1985     11 NaN  0.878531
23  1985     12 NaN  0.842704
24  1985     13 NaN  0.785877
25  1985     24   1  0.730625
26  1985     35 NaN  0.816686
27  1985     46 NaN  0.819271
28  1985     47 NaN  0.807050
ipdb> df.set_index(['year','PRuid','QC']).reset_index()
    year  PRuid  QC       data
0   2007  nonQC   0  8.014261
1   2008  nonQC   0  7.859152
2   2010  nonQC   0  7.468260
3   1985     10   1  0.861403
4   1985     11   1  0.878531
5   1985     12   1  0.842704
6   1985     13   1  0.785877
7   1985     24   1  0.730625
8   1985     35   1  0.816686
9   1985     46   1  0.819271
10  1985     47   1  0.807050
“QC”的值实际上从NaN改为1,在NaN中它应该是NaN

顺便说一句,为了对称性,我添加了“.reset_index()”,但是set_index引入了数据损坏

如果这是有趣的,版本是:

pd.version
<module 'pandas.version' from '/usr/lib/python2.6/site-packages/pandas-0.10.1-py2.6-linux-x86_64.egg/pandas/version.pyc'>
pd.version

所以这是一个bug。到2013年5月底,pandas 0.11.1应该会与bug修复一起发布(请参阅关于这个问题的评论)。
同时,我避免在任何多索引中使用带有NaNs的值,例如,在列“QC”中为NaNs使用一些其他标志值(-99)。

因此这是一个错误。到2013年5月底,pandas 0.11.1应该会与bug修复一起发布(请参阅关于这个问题的评论)。
同时,我避免在任何多索引中使用带有Nan的值,例如,在“QC”列中为Nan使用一些其他标志值(-99)。

带有Nan值的索引听起来有问题。我在0.11上,set_index显示QC索引级别上的NaN值。但是,查看reset_index源代码显示,
self.index.labels
self.index.levels
没有返回正确的NaN值。我建议你向熊猫队提交一个bug。谢谢。好的,我在上提交了一个,并修复了这个:,是一个bug,谢谢!带有Nan值的索引听起来有问题。我在0.11上,set_index显示QC索引级别上的NaN值。但是,查看reset_index源代码显示,
self.index.labels
self.index.levels
没有返回正确的NaN值。我建议你向熊猫队提交一个bug。谢谢。好的,我在上提交了一个,并修复了这个:,是一个bug,谢谢!