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

2024-09-30 16:30:21 发布

您现在位置:Python中文网/ 问答频道 /正文

在读取csv文件时,pandas可以识别dataframe中哪些列是分类的,而不需要我们显式地指定列。 类似于R中的StringAsFactor。 我尝试过搜索,但得到的结果是要么我们将列创建为分类列,要么指定在读取文件时将哪个列视为分类列。我需要熊猫来辨认。 任何帮助都将不胜感激。提前谢谢!!在


Tags: 文件csvdataframepandas分类stringasfactor
1条回答
网友
1楼 · 发布于 2024-09-30 16:30:21

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

Col
a
b
c
a
b
b
c

现在,用read_csv读这个,指定一个dtype参数-

^{pr2}$

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')

相关问题 更多 >