Dask dataframe: как преобразовать столбец dtype из объекта в числовой - PullRequest
0 голосов
/ 01 октября 2019

Работая в Python, я использую dask для набора данных ~ 20 ГБ. Один из столбцов содержит целые числа, но по какой-то причине dask читает в этом столбце dtype «object». Как бы я преобразовать это в числовое или float64 или целое число? Я пытался использовать dd.to_numeric, но получаю следующее сообщение об ошибке "модуль 'dask.dataframe' не имеет атрибута 'to_numeric'"

РЕДАКТИРОВАТЬ: я думаю, что это осложняется тем фактом, что данные имеют запятые междутысячи (например, 2133 вместо 2133). Не совсем уверен, как с этим бороться. Я попытался использовать pandas для начала и использовать .astype (int), но это явно не сработало.

1 Ответ

1 голос
/ 01 октября 2019

Вы должны использовать тот же 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=",")
...