pandas read_csv 按列索引(不是名称)设置`dtype`

问题描述 投票:0回答:2

file.txt
有一个标题和四列。但标题一直在变化。

类似:

,'non_standard_header_1','non_standard_header_2','non_standard_header_3'
,kdfjlkjdf, sdfdfd,,
,kdfjlkjwwdf, sdfddffd,,
,kdfjlkjwwdf,, sdfddffd,

我想在 pandas 中导入

file.txt
,并且我希望将列作为
object
导入。直观的方法(对我来说):

dtype        = [object, object, object]
如:

    daily_file              = pandas.read_csv('file.txt',
                                              usecols      = [1, 2, 3],
                                              dtype        = [object, object, object])

不起作用,运行上面的命令,我得到:

data type not understood

如何在导入时设置列

dtype
而不引用(现有)列名称?

python pandas types
2个回答
3
投票

pd.read_csv(..., dtype=object)
如果您正在寻找的话,将在读入的所有列中全局应用对象数据类型。

否则,如果您想将数据类型映射到列名称,则需要传递

{'col' : dtype}
形式的字典。


0
投票

您应该指定字典,其中键是以 0 开头的列号:

types_dict = {0: "int32", 1: "float32", 2: "str", 3: "str"}
df = pd.read_csv("data.csv", dtype=types_dict, header=None)
© www.soinside.com 2019 - 2024. All rights reserved.