使用pandas将CSV列读取为分类变量

时间:2018-01-03 12:27:07

标签: python pandas csv

如果没有我们在读取csv文件时明确指定列,pandas可以识别数据框中的哪些列是分类的。 与R中的StringAsFactor类似的东西 我尝试搜索,但我得到的是我们将列创建为分类或指定在读取文件时要考虑哪个列为分类。我需要大熊猫来识别。 任何帮助将非常感激。在此先感谢!!

1 个答案:

答案 0 :(得分:3)

是。使用read_*加载列时,可以指定哪些列具有分类类型。例如,考虑一个示例CSV -

Col
a
b
c
a
b
b
c

现在,使用read_csv阅读此内容,指定dtype参数 -

df = pd.read_csv('file.csv', dtype={'Col' : 'category'})

df['Col']

0    a
1    b
2    c
3    a
4    b
5    b
6    c
Name: Col, dtype: category
Categories (3, object): [a, b, c]

如果您有不明数量的分类列,您可以阅读它们然后逐个转换它们 -

df = pd.read_csv('file.csv')

for c in df.columns[df.dtypes == object]: # df.dtypes == 'object'
    df[c] = df[c].astype('category')
相关问题