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

Lea*_*ner 2 python csv pandas

在读取 csv 文件时,pandas 能否识别数据框中的哪些列是分类列,而无需我们明确指定列。类似于 R 中的 StringAsFactor。我尝试搜索,但我得到的是我们将列创建为 Categorical 或指定在读取文件时将哪个列视为分类列。我需要熊猫来识别。任何帮助将非常感激。提前致谢 !!

cs9*_*s95 5

是的。您可以在使用read_*. 例如,考虑一个示例 CSV -

Col
a
b
c
a
b
b
c
Run Code Online (Sandbox Code Playgroud)

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

df = pd.read_csv('file.csv', dtype={'Col' : 'category'})
Run Code Online (Sandbox Code Playgroud)

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

如果您有未知数量的分类列,您可以读入它们,然后将它们一一转换 -

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

for c in df.columns[df.dtypes == object]: # df.dtypes == 'object'
    df[c] = df[c].astype('category')
Run Code Online (Sandbox Code Playgroud)