在每列数据框中查找数据类型

时间:2016-04-24 11:36:28

标签: python pandas dataframe categorical-data

我已阅读此链接:Check which columns in DataFrame are Categorical

我有一个数据框,其中提到了工资,前面是$。它也被显示为分类数据。

此外,假设我的名义数据不是字符串形式,例如' F' M' M'等等 那么我们如何分类哪些列是数字,分类(带字符串)和名义?

说我的数据如下:

ID    Gender   Salary   HasPet  
1      M       $250       0
2      F       $5000      0
3      M       $4500      1  

1 个答案:

答案 0 :(得分:5)

您将categorical数据类型与strings混淆(pandas将其显示为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