Indexing NaNs的问题:set_index()。reset_index()会损坏数据
我读到NAN是有问题的,但是下面的问题导致了我的数据的实际损坏,而不是错误。这是虫子吗?我是否遗漏了文档中的一些基本内容? 我希望第二个命令给出错误或与第一个命令给出相同的响应: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
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,谢谢!