我已阅读此链接: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混淆了(熊猫将其显示为object
)。
数字本质上不能包含$
美元符号,因此大熊猫将Salary
列视为字符串,这是正确的行为!
如果需要,您可以轻松地将薪金列转换为整数/浮点数:
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