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

标签 python pandas dataframe categorical-data

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

相关文章:

python - 如何将字符串转换为Django模板中的列表

python - 在 pycharm 中使用第二个 python 版本

python - 如何解决,PermissionError : [Errno 13] Permission denied: 'test.from'

python - 从系列中获取索引和值

python - 如何在 Pandas 的持续时间计算中排除周末和节假日

python - Azure Databricks - 将 Parquet 文件读取到 DataFrame 中

python - 键入库中的示例代码导致 TypeError : 'type' object is not subscriptable, 为什么?

python - 如何从 Python 中的 csv 列中减去/添加时间?

python - Pandas 在数据检索后更改列的顺序

python - Pandas - 对 DataFrame 的索引应用转换