【问题标题】:Indicating missing data in Pandas指出 Pandas 中的缺失数据
【发布时间】: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")

标签: python pandas csv nan


【解决方案1】:

你可以这样试试:

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

然后,如果您想替换几个NAs,您只需选择要替换它们的位置即可。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-02
    • 2017-02-10
    • 2022-11-02
    • 2015-12-10
    • 2021-06-17
    • 1970-01-01
    • 1970-01-01
    • 2020-02-28
    相关资源
    最近更新 更多