【发布时间】:2020-07-12 13:17:22
【问题描述】:
我正在使用 pandas.read_csv() 从多个 csv 文件中导入数据。每个文件中的行/列数是未知的。数据应为float(n.a. 替换为np.NaN),但索引包含字符串。请参阅下面的 .csv 文件中的数据示例:
X Y Z
A 3.1 2.1 4.0
B 2.1 8.0 0.0
C 5.4 7.1 n.a.
D 7.6 5.0 5.5
我正在使用下面的代码:
dataset = pd.read_csv(file_name + '.csv', header=0, index_col=0, na_values=["n.a."], \
encoding="ISO-8859-1", thousands=",", dtype=float)
但是,它返回以下 ValueError:
ValueError: could not convert string to float: 'A'.
原因是索引包含字符串。有没有办法在不转换索引本身的情况下设置 dtype=float?
作为替代方案,我尝试将 csv 文件读取为 dtype=string,然后使用 pandas.to_numeric() 转换每一列。但是,由于某些 .csv 文件包含数千列和行,因此需要大量时间。
【问题讨论】:
-
这有帮助吗? stackoverflow.com/questions/40347377/… 您可以使用转换器读取 csv,然后将第一列设置为索引
-
你可以尝试设置error_bad_lines=False,这样会掉坏线!