是否可以使用 pandas' read_csv 读取分类列?
Is it possible to read categorical columns with pandas' read_csv?
我尝试将 dtype
参数与 read_csv
作为 dtype={n: pandas.Categorical}
传递,但这不能正常工作(结果是一个对象)。 The manual is unclear.
在版本 0.19.0
中,您可以在 read_csv
中使用参数 dtype='category'
:
data = 'col1,col2,col3\na,b,1\na,b,2\nc,d,3'
df = pd.read_csv(pd.compat.StringIO(data), dtype='category')
print (df)
col1 col2 col3
0 a b 1
1 a b 2
2 c d 3
print (df.dtypes)
col1 category
col2 category
col3 category
dtype: object
如果要为类别使用 dtype
和字典指定列:
df = pd.read_csv(pd.compat.StringIO(data), dtype={'col1':'category'})
print (df)
col1 col2 col3
0 a b 1
1 a b 2
2 c d 3
print (df.dtypes)
col1 category
col2 object
col3 int64
dtype: object
我尝试将 dtype
参数与 read_csv
作为 dtype={n: pandas.Categorical}
传递,但这不能正常工作(结果是一个对象)。 The manual is unclear.
在版本 0.19.0
中,您可以在 read_csv
中使用参数 dtype='category'
:
data = 'col1,col2,col3\na,b,1\na,b,2\nc,d,3'
df = pd.read_csv(pd.compat.StringIO(data), dtype='category')
print (df)
col1 col2 col3
0 a b 1
1 a b 2
2 c d 3
print (df.dtypes)
col1 category
col2 category
col3 category
dtype: object
如果要为类别使用 dtype
和字典指定列:
df = pd.read_csv(pd.compat.StringIO(data), dtype={'col1':'category'})
print (df)
col1 col2 col3
0 a b 1
1 a b 2
2 c d 3
print (df.dtypes)
col1 category
col2 object
col3 int64
dtype: object