DtypeWarning:列(15,16,18,24)具有混合类型。如果列具有混合类型,则会删除它们

时间:2018-03-30 13:15:25

标签: python pandas

我正在尝试阅读csv文件

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

它说:

  

DtypeWarning:列(15,16,18,24)具有混合类型。指定dtype   导入选项或设置low_memory = False   interactivetivity = interactivity,compiler = compiler,result = result)

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

我试过了:

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

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

但结果仍然相同。 为什么会这样?

1 个答案:

答案 0 :(得分:0)

您需要为每列设置一个dtype。

来自doc

  

dtype:列名称或列表 - >类型,默认无

     

数据或列的数据类型。例如。 {'a':np.float64,'b':np.int32}   使用str或object来保留和不解释dtype。如果转换器   如果指定,它们将应用于dtype转换的INSTEAD。

为什么会这样?

大多数时候,pandas会在处理行之前尝试找出dtype。但是如果它发生的值不是所选的dtype,则会引发错误。因此,您需要更正原始数据或选择要导入的更宽松的dtype(就像您使用object所做的那样)。