我正在为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的所有可能性并避免错误。
答案 0 :(得分:6)
您可以将您想要解释为NaN
的变量添加到pd.read_csv
的na_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”值。