gpt4 book ai didi

python - pandas.read_csv 命名参数 na_values 默认值

转载 作者:太空宇宙 更新时间:2023-11-04 05:58:02 25 4
gpt4 key购买 nike

当从 csv、Excel、sql 等(例如 pandas.io.parsers 中的方法)导入数据时,Pandas 会自动将某些值转换为 NaN

我的问题是,这些默认值是什么?

我注意到字符串 "NA" 会自动转换。作为others have noted ,可以通过在调用导入数据的函数(例如 pandas.io.parsers.read_csv)时传递 keep_default_na=False 来禁用此自动转换。

也就是说,我不知道 "NA" 以外的哪些值会自动转换。在 the docs ,我所能找到的是 keep_default_na 参数的以下描述:

keep_default_na : bool, default True If na_values are specified and keep_default_na is False the default NaN values are overridden, otherwise they’re appended to

我想知道的是,上述“默认 NaN 值”是什么?

最佳答案

Jeff 大约一年前提供了一个链接,但由于点击链接很麻烦,所以我将信息移至此处。

['-1.#IND', '1.#QNAN', '1.#IND', '-1.#QNAN', '#N/A','N/A', 'NA', '#NA', 'NULL', 'NaN', '-NaN', 'nan', '-nan']

来源:http://pandas.pydata.org/pandas-docs/stable/io.html#na-values

然而

此列表不完整。

import pandas as pd
from StringIO import StringIO

sio = StringIO()
sio.write('"foo","bar"\n"1",""\n"NA","4"')
sio.seek(0)
pd.read_csv(sio, sep=",", quotechar='"')
foo bar
0 1 NaN
1 NaN 4

请注意为什么空字符串不是列表的一部分,但默认情况下它仍被解析为 NaN?

pd.read_csv(sio, sep=",", quotechar='"',
keep_default_na=False,
na_values=['-1.#IND', '1.#QNAN', '1.#IND',
'-1.#QNAN', '#N/A','N/A', '#NA', 'NA'
'NULL', 'NaN', '-NaN', 'nan', '-nan'])

foo bar
0 1
1 NaN 4

如果此列表是默认列表,则这两个命令应该产生完全相同的结果。

他们没有。

如果您想重现 pandas.read_csv 的默认行为,这是您需要的列表:

['', '-1.#IND', '1.#QNAN', '1.#IND', '-1.#QNAN', '#N/A','N/A', 'NA', '#NA', 'NULL', 'NaN', '-NaN', 'nan', '-nan']

供引用的 Pandas 版本:

pd.__version__
'0.15.2'

带有 pandas 的错误票:

https://github.com/pydata/pandas/issues/10700

更新

这在 pandas 0.17 中已修复

关于python - pandas.read_csv 命名参数 na_values 默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26659941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com