【发布时间】:2016-09-27 16:36:48
【问题描述】:
我正在读取一个 csv 文件,frmo 我获得了这些列:
encoding = "UTF-8-SIG"
csv_file = "my/path/to/file.csv"
fields_cols_mapping = {
'brand_id': 'Brand',
'custom_dashboard': 'Custom Dashboard LO',
'custom_dashboard_isfeatured': 'Custom Dashboard LO - Is Featured',
'description': 'LODescription',
'is_active': 'TrainingIsActive',
'lo_id': 'LOID',
'lo_type_id': 'LOType',
'timestamp': 'Timestamp',
'title': 'LOTitle',
'training_version_id': 'TrainingVersion'
}
dataframe = pd.read_csv(
csv_file,
encoding=encoding,
sep='|',
usecols=[unicode(v) for v in fields_cols_mapping.values()],
dtype={ k: object for k in fields_cols_mapping.keys() },
)
但是,在使用 ipdb 检查时,我发现使用 read_csv 调用的解析器不会转换列名 Custom Dashboard LO – Is Featured:
# debug
> /../../venvs/myvenv/lib/python2.7/site-packages/pandas/io/parsers.py(1140)__init__()
1138 col_indices = []
1139 for u in self.usecols:
-> 1140 if isinstance(u, string_types):
1141 col_indices.append(self.names.index(u))
1142 else:
ipdb> self
<pandas.io.parsers.CParserWrapper object at 0x10b134710>
ipdb> self.names
[u'LOType', u'LOID', u'LOTitle', u'TrainingVersion', u'LODescription', u'TrainingIsActive', u'Custom Dashboard LO', u'Brand', u'Custom Dashboard LO \u2013 Is Featured', u'Timestamp']
有人对我应该做什么有任何建议吗?
【问题讨论】: