我已阅读此链接:Check which columns in DataFrame are Categorical
我有一个数据框,其中提到薪水时前面加上 $。它也显示为分类数据。
此外,假设我的标称数据不是字符串形式,例如“F”、“M”等。 那么我们如何分类哪些列是数字列、分类列(带字符串)和名义列?
假设我的数据是这样的:
ID Gender Salary HasPet
1 M $250 0
2 F $5000 0
3 M $4500 1
最佳答案
你在混淆categorical数据类型为 strings (pandas 将其显示为 object
)。
数字不能包含 $
美元符号,因为 pandas 将 Salary
列视为字符串,这是正确行为!
不过,如果需要,您可以轻松地将工资列转换为整数/ float :
In [180]: df
Out[180]:
Gender Salary
0 F $3283
1 M $6958
2 F $3721
3 F $7732
4 M $7198
5 F $5475
6 F $7410
7 M $8673
8 F $8582
9 M $4115
10 F $8658
11 F $6331
12 M $6174
13 F $6261
14 M $6212
In [181]: df.dtypes
Out[181]:
Gender object
Salary object
dtype: object
让我们删除前导 $
并将 Salary
转换为 int
:
In [182]: df.Salary = df.Salary.str.lstrip('$').astype(int)
In [183]: df.dtypes
Out[183]:
Gender object
Salary int32
dtype: object
和您的 Gender
列到分类:
In [186]: df.Gender = df.Gender.astype('category')
In [187]: df.dtypes
Out[187]:
Gender category
Salary int32
dtype: object
关于python - 在数据框的每一列中查找数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36822580/