Pandas read_csv 将我的数字数据导入为 str?

Pandas read_csv import my numeric data as str?

我使用 pandas 你读取了一个 csv 填充的数字数据,如下所示:

-9999;-11,558;-0,692;0,005;0,001;-1
-9999;-3,32;1,054;5,317;0;-1
...

我用这行代码导入:

data = pd.read_csv(file, usecols = [0,1,2,3,4], sep = ";", header=None)

结果是我的所有数据框都由我转换成字符串的数字填充 ex: '3,4'

我尝试将 ,dtype=float 添加到我的 pd.read_csv 行,但出现此错误:

ValueError: could not convert string to float: '5,04'

!!??

你应该写5.04,小数点是必须的,如果它不在数字中则算作tuple

您的数字中的小数点是逗号。您应该将 decimal=',' 作为参数传递给 pandas.read_csv().

来自the docs

decimalstr, default ‘.’

Character to recognize as decimal point (e.g. use ‘,’ for European data).

参数 decimal=","thousands="." 在文档中有描述。他们可以提供帮助

https://pandas.pydata.org/docs/reference/api/pandas.read_csv.html

data = pd.read_csv(file, usecols = [0,1,2,3,4],delimiter=";", decimal=",",thousands=".", header=None)

可能会在

中解决