J'ai essayé de passer le paramètre dtype
avec read_csv
comme dtype={n: pandas.Categorical}
mais cela ne fonctionne pas correctement (le résultat est un objet). Le manuel n'est pas clair .
Dans la version 0.19.0
vous pouvez utiliser le paramètre dtype='category'
dans 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
Si vous souhaitez spécifier une colonne pour la catégorie, utilisez dtype
avec le dictionnaire:
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
Le catégorique n'est pas valide dtype .
Cette publication StackOverflow contient des détails sur la façon de stocker des données catégorielles dans un fichier texte.