【发布时间】:2016-11-26 18:30:54
【问题描述】:
更新
所以我一直在玩这个,当我使用read_csv() 将不同的 csv 文件读入我的程序时,似乎确实会发生这种情况。然后发生的事情正是docs 所说的将会发生的事情:
默认情况下,以下值被解释为 NaN:''、'#N/A'、'#N/AN/A'、'#NA'、'-1.#IND'、'-1.# QNAN'、'-NaN'、'-nan'、'1.#IND'、'1.#QNAN'、'N/A'、'NA'、'NULL'、'NaN'、'nan'。
所以我没有在我的代码中考虑这一步是不好的;感谢所有提供帮助的人。
原问题
我在pandas 中创建电子表格,方法是用字符串“NA”(spreadsheet['name']="NA") 填充列,然后用实际数据点逐步替换这些“NA”。
我是这样做的:spreadsheet.loc[spread[match row number here], =inputstring.split("\t")
当使用.to_csv() 输出数据时,我惊讶地发现pandas 显然将这些“NA”字符串解释为表示缺失数据,例如它用我输入na_rep= 的任何内容替换它们。我主要使用“NA”作为占位符,没想到熊猫(将丢失的数据输出为“Nan”)会弄乱它们。
我在documentation on missing data 中找不到任何关于此事的信息,他们在那里用np.nan 创建了NaN
因此,
-
Pandas 将我的电子表格中任何位置的字符串“NA”解释为“缺失数据”是否正确?他们会进行某种字符串匹配吗?
-
如果是这样,还有哪些其他字符串可以这样使用?或者表示缺失数据点的最合法方式是什么?
-
如果属实,这种行为对我来说似乎有点危险/可能导致意外行为。或者这不是真的?
非常感谢任何有关资源的帮助/指针!
【问题讨论】:
-
当你在类似
DataFrame({"A": ["NA", "NA", "NA"]})的东西上运行.to_csv()会发生什么?我很好奇,因为我无法重现您所描述的行为。 -
坦克供您输入,确实无法复制!好点,我想知道我在哪里误入歧途 - 之后我所做的就是添加这样的数据点:
spreadsheet.loc[spreadsheet[match row number here], =inputstring.split("\t")