是否可以使用pandas的read_csv读取分类列?

Emr*_*mre 33 csv file readfile pandas categorical-data

我试过dtyperead_csvas 传递参数dtype={n: pandas.Categorical}但是这不能正常工作(结果是一个Object).手册不清楚.

jez*_*ael 37

在版本0.19.0,你可以使用参数dtype='category'read_csv:

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
Run Code Online (Sandbox Code Playgroud)

如果要为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
Run Code Online (Sandbox Code Playgroud)

  • 我想是的,使用`df = pd.read_csv(StringIO(data),dtype = {'col1':'category'},index_col ='col1')` (4认同)