深入浅出Pandas:利用Python进行数据处理与分析
上QQ阅读APP看书,第一时间看更新

2.6 Pandas的数据类型

Pandas数据类型是指某一列里所有数据的共性,如果全是数字,那么就是数字型;如果其中有一个不是数据,那么就不是数字型了。我们知道Pandas里的一列可以由NumPy数组组成,事实上大多NumPy的数据类型就是Pandas的类型,Pandas也有自己特有的数据类型。

2.6.1 数据类型查看

先加载数据:

import pandas as pd

df = pd.read_excel('https://www.gairuo.com/file/data/dataset/team.xlsx')

查看df中各列的数据类型:

df.dtypes # 各字段的数据类型
'''
name    object
team    object
Q1       int64
Q2       int64
Q3       int64
Q4       int64
dtype: object
'''

可以看到,name和team列为object,其他列都是int64。如下查看具体字段的类型:

df.team.dtype
# dtype('O')

df.team是一个Series,所以要使用.dtype而不是.dtypes。

2.6.2 常见数据类型

Pandas提供了以下常见的数据类型,默认的数据类型是int64和float64,文字类型是object。

  • float
  • int
  • bool
  • datetime64[ns]
  • datetime64[ns, tz]
  • timedelta64[ns]
  • timedelta[ns]
  • category
  • object
  • string

这些数据类型大多继承自NumPy的相应数据类型,Pandas提供了可以进行有限的数据类型转换的方法,如将数字型转为字符型,后续章节会进行介绍。

2.6.3 数据检测

可以使用类型判断方法检测数据的类型是否与该方法中指定的类型一致,如果一致,则返回True,注意传入的是一个Series:

pd.api.types.is_bool_dtype(s)
pd.api.types.is_categorical_dtype(s)
pd.api.types.is_datetime64_any_dtype(s)
pd.api.types.is_datetime64_ns_dtype(s)
pd.api.types.is_datetime64_dtype(s)
pd.api.types.is_float_dtype(s)
pd.api.types.is_int64_dtype(s)
pd.api.types.is_numeric_dtype(s)
pd.api.types.is_object_dtype(s)
pd.api.types.is_string_dtype(s)
pd.api.types.is_timedelta64_dtype(s)

2.6.4 小结

本节介绍了Pandas数据序列的数据类型,数据类型关系到数据的计算方法。Pandas的一些特殊的数据类型会在后续章节介绍。