我尝试将dtype
参数与read_csv
作为dtype={n: pandas.Categorical}
传递,但这不能正常工作(结果是一个Object). The manual is unclear。
可以用pd.read_csv
读取分类列吗?
我尝试将dtype
参数与read_csv
作为dtype={n: pandas.Categorical}
传递,但这不能正常工作(结果是一个Object). The manual is unclear。
可以用pd.read_csv
读取分类列吗?
2条答案
按热度按时间bpsygsoo1#
在
0.19.0
版本中,您可以在read_csv
中使用参数dtype='category'
:字符串
如果要指定类别列,请使用
dtype
和字典:型
8ehkhllq2#
这个问题已经发布了8年多了,但是
dtype={n: pandas.Categorical}
不工作,因为pd.Categorical
是一个顶级函数,它将列转换为类别dtype,而不是dtype示例本身。你可以使用pd.CategoricalDtype()
。字符串
对于特定列,例如
col1
:型
显式使用dtype示例的优点(相对于传递快捷方式
'category'
)是因为你可以做两件事:TypeError: Cannot setitem on a Categorical with a new category (b), set the categories first
。为了完全防止此错误,您可以在开始时传递类别列表。使用@jezrael的答案中的示例,下面的代码演示了一个示例:
型
然后,当我们仔细检查
df['col1']
时:型