代码之家  ›  专栏  ›  技术社区  ›  Brian Postow

pd.low_memory=false不再有效?

  •  0
  • Brian Postow  · 技术社区  · 6 年前

    我收到标准警告:

    sys:1: DtypeWarning: Columns (0,8,93,584) have mixed types. Specify dtype option on import or set low_memory=False.
    

    我不能指定类型,因为数据来自于来自SQL的csv。例如,在一列中有一些NaN与字符串穿插在一起…

    一般来说,我有

    pd.low_memory=False
    

    在几乎所有导入熊猫的文件中…但出于某种原因,有时候不起作用。

    我刚升级到熊猫23,所以这可能是其中的一部分?

    另外,我还在使用python 2.7…

    1 回复  |  直到 6 年前
        1
  •  0
  •   It_is_Chris    6 年前

    我不确定这是否是功能更改;但是您可以更改参数的默认值。 low_memory True False 对于 pd.read_csv :

    import io
    import pandas as pd
    df=pd.read_csv(io.StringIO('\n'.join([str(x) for x in range(1000000)] + ['some string'])))
    

    将返回错误 DtypeWarning: Columns (0) have mixed types. Specify dtype option on import or set low_memory=False.

    您可以使用 functools :

    import io
    import pandas as pd
    import functools
    pd.read_csv = functools.partial(pd.read_csv, low_memory=False)
    df=pd.read_csv(io.StringIO('\n'.join([str(x) for x in range(1000000)] + ['some string'])))