在Pandas(版本1.0.3)中加载csv文件时遇到一个奇怪的问题。
我想将某些列自动转换为category
。
为此,我创建了带有列名及其类型的字典。
好吧,对于一列它确实有效,而对其他列则无效。
我没有任何错误。
可能导致列未解析为category
的原因是什么?
看起来很奇怪,如果之后我尝试通过强制转换将该列转换为category
,则该操作会完美地工作。
因此,乍一看似乎不是列错误的问题。
col_types = {
'CURRENCY': "category",
'PRODUCT': "category",
'PRODUCT_TYPE': "category",
}
def parse_csv(path_location):
df = pd.read_csv(
path_location,
sep=';',
engine='c',
dtype=col_types,
true_values=['Y', 'y'],
false_values=['N', 'n'],
converters=converters,
usecols=['PRODUCT', 'PRODUCT_TYPE', 'PORTFOLIO_CURRENCY', 'NATIONALITY'],
nrows=99)
return df
我通过上面的函数得到的结果是:
Data columns (total 5 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 PORTFOLIO_CURRENCY 198 non-null category
1 PRODUCT 198 non-null object
2 PRODUCT_TYPE 198 non-null object
3 AGE 185 non-null float64
4 NATIONALITY 198 non-null object
dtypes: category(1), float64(1), object(3)
答案 0 :(得分:0)
尽管我不能安装1.0.3来测试版本是否是问题,但我已经在1.1.4上对其进行了测试,并且可以正常工作。请将熊猫更新为最新版本,因为v1.1.0中有a lot of个类别分类的修复程序。
如果没有帮助,请检查提供的转换器,并验证CSV是否不包含格式错误的数据(例如错误的unicode),但是我不会遇到此类问题。