Читайте в CSV, получите типы данных столбцов из словаря - PullRequest
0 голосов
/ 05 мая 2018

Я хочу прочитать CSV-файл в Pandas Dataframe. У меня есть столбец строки и столбец с плавающей точкой. Это мой код:

import pandas as pd
import decimal
D = decimal.Decimal

pd.read_csv(sourceFileName,
            usecols=["stringCol", "floatCol"],
            converters={"stringCol" : str,
                        "floatCol"  : lambda x: D(0) if x is "" else D(x)})

Я хотел бы сохранить имя и тип столбца в словаре, а затем обратиться к элементам этого словаря в операторе read_csv.

Примерно так:

colFormats = {"stringCol" : "str",
              "floatCol"  : "ModifiedDecimalFunction"}

Есть ли способ сделать это?

Большое спасибо

1 Ответ

0 голосов
/ 05 мая 2018

Вы можете создать другой словарь, описывающий значение каждого типа:

formatConverters = {'str': str, 'floatCol': lambda x: D(0) if x is "" else D(x)}

Теперь используйте

pd.read_csv(
    ....,
    converters={c: formatConverters[v] for (c, v) in colFormats.items()})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...