来自yaml的熊猫dtypes字典

时间:2017-11-29 03:57:12

标签: python pandas dictionary yaml

我遇到了一个问题,我想从YAML文件加载一个部分来填充pandas.read_csv dtypes参数。我的问题是字典中的值有' '它周围和熊猫没有认识到它是一种数据类型。

Yaml:
  dict: {ITEM_GROUP: object, ITEM: object}

import pandas as pd
with open(yaml_org_path, 'r') as f:
    config = yaml.load(f)
df = pd.read_csv('file.csv', dtypes= config['Yaml']['dict'])

如果我打印YAML文件的这部分,我得到:

print(config['Yaml']['dict'])

{' ITEM_GROUP':' object',' ITEM':' object'}

我不确定我是否在Yaml文件中正确使用字典,或者我是否需要使用某些pyyaml magic关键字。我是新手而且卡住了,所以提前谢谢你!

1 个答案:

答案 0 :(得分:1)

这对我有用。您的问题似乎是dtypes中的参数pd.read_csv应该是dtype

import yaml

from io import StringIO
config = yaml.load(StringIO("""
Yaml:
  dict: {ITEM_GROUP: object, ITEM: object}
"""))

config['Yaml']['dict']
# {'ITEM': 'object', 'ITEM_GROUP': 'object'}

pd.read_csv(StringIO("""
ITEM,ITEM_GROUP
a,b
c,d
"""), dtype=config['Yaml']['dict']).dtypes
#     ^^^^^
#ITEM          object
#ITEM_GROUP    object
#dtype: object