NAN值在python中被认为是字符串

时间:2016-02-19 10:59:38

标签: python pandas nan

我正在为python中的一个小应用程序编写代码,我意识到当我的导入数据函数出现错误时,文件(txt,dat,csv ...)包含缺少的值,如NAN或" NAN"在某些数据中,如果这些值被写为nan或NaN,则导入数据没有问题。

例如

06.02.2011 00:10:00 NAN 43 30 2 37 42 30 2 34 41 19 4 302 5 306 8 69 2810 2811 2810 974 46 130
06.02.2011 00:20:00 36 41 28 2 36 42 27 2 35 42 26 3 295 8 298 8 69 2811 2811 2811 974 46 130

第一行中的值NAN将引发错误,因为它被视为数据中的字符串

虽然具有nan值的文件仅被视为缺失值,因此没有问题

06.02.2011 00:10:00 nan 43 30 2 37 42 30 2 34 41 19 4 302 5 306 8 69 2810 2811 2810 974 46 130
06.02.2011 00:20:00 36 41 28 2 36 42 27 2 35 42 26 3 295 8 298 8 69 2811 2811 2811 974 46 130

我不知道修改python中的哪个导入函数或库,以便包含读取单词Nan的所有可能性并避免错误。

2 个答案:

答案 0 :(得分:6)

您可以将您想要解释为NaN的变量添加到pd.read_csvna_values个参数:

df = pd.read_csv('your_file.csv', na_values=['NAN'])

您也可以在that回答中找到一些信息。

来自na-values的所有默认NA值:

  

默认的NaN识别值为['-1.#IND', '1.#QNAN', '1.#IND', '-1.#QNAN', '#N/A','N/A', 'NA', '#NA', 'NULL', 'NaN', '-NaN', 'nan', '-nan']。虽然是一个长度为0的字符串''如果未包含在默认的NaN值列表中,它仍会被视为缺失值。

答案 1 :(得分:0)

出现什么样的错误?它似乎工作正常。我试过Python2和3。

>>> float("NAN")
nan
>>> float("NaN")
nan
>>> float("nan")
nan

也许您正在尝试转换为int? int类型不允许“NaN”值。