Skip to main content
 首页 » 编程设计

python之在数据框的每一列中查找数据类型

2025年05月04日31webabcd

我已阅读此链接: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