Python 数据类型警告:列(15、16、18、24)的类型混合。如果列具有混合类型,则会将其删除

Python 数据类型警告:列(15、16、18、24)的类型混合。如果列具有混合类型,则会将其删除,python,pandas,Python,Pandas,我正在尝试读取csv文件 pd.set_option('display.max_columns', None) inventory = pd.read_csv('inventory-new.csv', sep=";", names=columns) 它说: 数据类型警告:列(15、16、18、24)的类型混合。指定数据类型 导入或设置低内存选项=False。 交互性=交互性,编译器=编译器,结果=结果) 列号15,16,18,24被完全删除 我试过: inventory = pd.read_c

我正在尝试读取csv文件

pd.set_option('display.max_columns', None)
inventory = pd.read_csv('inventory-new.csv', sep=";", names=columns)
它说:

数据类型警告:列(15、16、18、24)的类型混合。指定数据类型 导入或设置低内存选项=False。
交互性=交互性,编译器=编译器,结果=结果)

列号15,16,18,24被完全删除

我试过:

inventory = pd.read_csv('inventory-new.csv', sep=";", names=columns, dtype=object)

但结果仍然是一样的。 为什么会发生这种情况?

您需要为每列设置一个数据类型。 从:

数据类型:列的类型名称或目录->类型,默认为无

数据或列的数据类型。例如{'a':np.float64,'b':np.int32} 使用str或object保留而不是解释数据类型。中频转换器 如果指定了,则将应用它们而不是数据类型转换

为什么会这样?
大多数情况下,熊猫会在处理行之前尝试找出数据类型。但如果某个值不是所选的数据类型,则会引发错误。因此,您需要更正原始数据或选择一个更允许的数据类型进行导入(就像您对
对象
所做的那样)。

好的,我尝试了pd.read_csv('rinventory-new.csv',sep=“;”,name=columns,dtype={1:object,2:object,3:object,4:object…)但问题仍然是一样的。所有混合类型的列都消失了。您能在创建数据框之前更正数据吗?例如,使用csv读取器吗?如果我只取几行,这很好。但我有2200行。很难找到所有混合值。我想您可以检查类型并引发异常以查找行。是否要upda请使用示例数据集回答您的问题,以确定如何执行此操作?我想我的csv文件存在一些问题,我将完全修复这些问题,然后重试。
inventory = pd.read_csv('inventory-new.csv', sep=";", names=columns, low_memory=False)