表明Pandas中的丢失数据

时间:2016-07-22 18:49:58

标签: python csv pandas spreadsheet nan

更新

所以我一直在玩这个,当我使用read_csv()将不同的csv文件读入我的程序时,这似乎确实发生了。然后发生的事情正是docs所说的将会发生的事情:

  

默认情况下,以下值被解释为NaN:'','#N / A','#N / AN / A','#N',' - 1。#IND',' - 。#。 QNAN',' - N',' - nan','1。#IND','1。#QNAN','N / A','NA','NULL','NaN','nan'。< / p>

所以我不在考虑我的代码中的这一步;感谢所有帮助过的人。

原始问题

我通过使用字符串&#34; NA&#34;填充列来在pandas中创建电子表格。 (spreadsheet['name']="NA")然后逐步用实际数据点替换那些&#34; NA&#34; s。 我是这样做的:spreadsheet.loc[spread[match row number here], =inputstring.split("\t")

当用.to_csv()输出数据时,我惊讶地发现大熊猫显然解释了这些&#34; NA&#34;字符串表示缺少数据,例如它将它替换为na_rep=中的任何内容。我主要使用&#34; NA&#34; s作为占位符,并没有想到大熊猫(输出缺失的数据为&#34; Nan&#34;)会弄乱它们。

我在documentation on missing data找不到任何关于此问题的内容,他们使用np.nan

创建了NaN

因此,

  • Pandas只会解释字符串&#34; NA&#34;是否正确?在我的电子表格中的任何地方&#34;缺少数据&#34;?他们做某种字符串匹配吗?

  • 如果是这样,那么可以使用哪些其他字符串?或者表示缺少数据点的最合法方式是什么?

  • 如果为true,这种行为对我来说似乎有点危险/会导致意外行为。或者这不是真的吗?

非常感谢任何有关资源的帮助/指示!

1 个答案:

答案 0 :(得分:0)

你可以这样试试:

spreadsheet = pd.DataFrame({'name': ['NA', 'NA', 'NA', 'NA', 'NA']})
spreadsheet
    name
0   NA
1   NA
2   NA
3   NA
4   NA

然后,如果您想要替换几个NA,您可以选择要替换它们的位置。

spreadsheet.loc[1:2] = 'foo'
spreadsheet
    name
0   NA
1   foo
2   foo
3   NA
4   NA