我有一个供Pandas阅读的CSV文件,格式如下:
name, quart2c, p_rat, other_col
avg, 1, 2, 3
std, 1, 2, 3
我想pandas.read_csv()
保证所有单元格都有float32类型,除了第一列('name '),因为那是索引列。
因此,我传递了两个参数给它,如下所示:
pandas.read_csv(file_path, index_col=0, dtype=np.float32)
# or like this, both failed
pandas.read_csv(file_path, index_col='name', dtype=np.float32)
但是panda仍然尝试将第一列转换为float,并引发了一个异常:
ValueError:无法将字符串转换为浮点数:'平均值'
我想要的:
- CSV文件是由我自己编码的另一个程序制作的,如果结构不对,我可以很容易地调整它。
1.我希望总是指定argdtype=np.float32
,以便检查是否有任何错误值。我不希望这些值也被解释为整数类型。
1.索引栏“name”应该保留为index_col
,因为稍后会用到它。无论如何,这个栏不应该被切断。
我该怎么拿呢?
2条答案
按热度按时间w8f9ii691#
最好的方法是先用默认的args读入csv,给出index col,然后转换整个df(这不会影响index):
pb3s4cty2#
您可以使用
dtype
和converters
尝试这种方法。输出: