【问题标题】:Python Pandas , fixing values in a column and resetting the dtypes?Python Pandas,修复列中的值并重置 dtypes?
【发布时间】:2018-07-03 05:15:38
【问题描述】:

我的代码将 csv 文件读入 pandas 数据帧。 但是,如果 csv 文件在列中有“空”值,我会遇到以下错误: 列 (10,11,12) 具有混合类型。在导入时指定 dtype 选项或设置 low_memory=False。 这个空值主要出现在数据的最后一行。

我用 np.nan 替换 null 如下: df.replace('null', np.nan,inplace=True)

但是,列 dtype 仍然作为对象保留。有没有办法自动重新初始化 dtypes 或者是否有清理此类数据的最佳方法?

【问题讨论】:

    标签: python-3.x pandas


    【解决方案1】:

    您可以在read_csv中使用参数na_values

    df = pd.read_csv(path, keep_default_na=False, na_values=["null"])
    

    熊猫docs的更多信息。


    如果所有列都是floats,则可以替换和转换:

    df = df.replace('null', np.nan).astype(float)
    

    replace 之后得到object dtype,因为混合值 - floats (NaNs) 和 strings(数字保存为 strings)。

    【讨论】:

    • 完美!我需要 :df = pd.read_csv(path, keep_default_na=True, na_values=["null"])
    猜你喜欢
    • 1970-01-01
    • 2019-01-30
    • 1970-01-01
    • 2017-01-10
    • 1970-01-01
    • 1970-01-01
    • 2021-10-21
    • 2020-06-27
    • 2021-10-10
    相关资源
    最近更新 更多