在datafram的每一列中查找数据类型

2024-05-13 20:49:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我读过这个链接: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  

Tags: columns数据字符串indataframewhich链接check
1条回答
网友
1楼 · 发布于 2024-05-13 20:49:10

您将categorical数据类型与strings混淆(pandas将其显示为object)。

数字不能包含$美元符号,因为pandas认为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

相关问题 更多 >