读入CSV,从字典中获取Column数据类型

时间:2018-05-05 10:53:53

标签: python pandas

我想将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 :(得分:1)

您可以创建另一个字典,描述每种类型的含义:

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()})