【问题标题】:Dask dataframe: how to convert a column dtype from object to numericDask 数据框:如何将列 dtype 从对象转换为数字
【发布时间】:2020-01-30 14:44:19
【问题描述】:

在 Python 中工作,我将 dask 用于约 20gb 的数据集。其中一列包含整数,但出于某种原因,dask 在此列中读取为具有“对象”的 dtype。我如何将其转换为数字或 float64 或整数?我尝试使用 dd.to_numeric,但收到以下错误“模块 'dask.dataframe' 没有属性 'to_numeric'”

编辑:我认为这很复杂,因为数据在数千之间有逗号(例如 2,133 而不是 2133)。不太清楚如何处理这个问题。我尝试使用 pandas 开始并使用 .astype(int),但这显然不起作用。

【问题讨论】:

    标签: python bigdata dask


    【解决方案1】:

    你应该使用相同的pandas参数thousands

    import pandas as pd
    import dask.dataframe as dd
    df = pd.DataFrame({"a":['1,000', '1', '1,000,000']})\
           .to_csv("out.csv", index=False)
    
    # read as object
    df = pd.read_csv("out.csv")
    df = dd.read_csv("out.csv")
    
    # read as numeric
    df = pd.read_csv("out.csv", thousands=",")
    df = dd.read_csv("out.csv", thousands=",")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-27
      • 1970-01-01
      • 2022-01-06
      • 2019-12-27
      • 2022-08-21
      • 2017-05-03
      • 1970-01-01
      • 2020-07-28
      相关资源
      最近更新 更多