Pandas数据类型转换与查看:df.astype()和df.dtypes详解

橘子海
橘子海
发布时间:2026-10-15| 4人浏览过
原创

本文详细介绍Pandas中查看和转换数据类型的核心方法。通过df.dtypes、df.shape及df.info()快速获取数据框的维度、列名、非空计数及内存占用等关键信息。重点讲解df.astype()函数的多种用法,包括全局转换、指定列转换及索引类型转换,并深入解析object类型的特殊性及其清洗策略,帮助开发者高效处理数据格式问题。

Pandas支持多种数据类型,了解这些类型是进行数据操作的基础。

Python与NumPy各自拥有独立的数据格式体系,两者之间的对应关系可通过参考相关表格进行对照理解。

在Pandas中,默认的数据类型通常表现为int64和float64。

1. 使用df.dtypes查看数据框字段类型

假设存在一个名为td_link_data的数据框,其结构如下所示。

print(td_link_data)

链路ID 管理域 日期 时间 上行速率Mbps 上行对比速率Mbps 下行速率Mbps 下行对比速率Mbps 上行丢弃速率Mbps 0 500 10001 20210609 10 0.000 0.011 0.000 0.001 0.0 1 500 10001 20210609 11 0.000 0.007 0.000 0.000 0.0 2 500 10001 20210609 12 0.000 0.028 0.000 0.002 0.0 3 500 10001 20210609 13 0.000 0.056 0.000 0.003 0.0 4 500 10001 20210609 14 0.000 0.062 0.000 0.003 0.0 5 500 10001 20210609 15 0.000 0.074 0.000 0.005 0.0 6 500 10001 20210609 16 0.000 0.061 0.000 0.004 0.0 7 500 10001 20210609 17 0.000 0.069 0.000 0.004 0.0 8 500 10001 20210609 18 0.000 0.054 0.000 0.002 0.0 9 500 10001 20210609 19 0.000 0.054 0.000 0.002 0.0 10 500 10001 20210609 20 0.000 0.040 0.000 0.004 0.0 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 239 500 10001 20210609 23 0.000 0.040 0.000 0.004 0.0

要查看数据框td_link_data中各列的数据类型,可执行df.dtypes。

print(td_link_data.dtypes)

执行后的结果如下所示。

链路ID int64 管理域 int64 日期 object 时间 object 上行速率Mbps float64 上行对比速率Mbps float64 下行速率Mbps float64 下行对比速率Mbps float64 上行丢弃速率Mbps float64 dtype: object

2. 使用df.shape查看数据框维度

print(td_link_data.shape)

运行结果说明该数据框包含240行和9列。

(240, 9)

3. 使用df.info()获取数据框策略基本信息

该方法可以获取维度、列名称、数据格式以及所占内存空间等详细信息。

print(td_link_data.info())

具体输出结果如下。

<class 'pandas.core.frame.DataFrame'> RangeIndex: 240 entries, 0 to 239 Data columns (total 9 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 链路ID 240 non-null int64 1 管理域 240 non-null int64 2 日期 240 non-null object 3 时间 240 non-null object 4 上行速率Mbps 240 non-null float64 5 上行对比速率Mbps 240 non-null float64 6 下行速率Mbps 240 non-null float64 7 下行对比速率Mbps 240 non-null float64 8 上行丢弃速率Mbps 240 non-null float64 dtypes: float64(5), int64(2), object(2) memory usage: 17.0+ KB

对上述结果进行解释:

1. 数据类型标识为数据框 <class 'pandas.core.frame.DataFrame'> 2. 表格维度为240行乘以9列,RangeIndex范围从0到239 3. 显示表格的列名、非空值计数以及各列字段类型dtype 4. 统计数据框中包含的字段类型及其数量分布:float64(5), int64(2), object(2) 5. 表格所占用的内存空间为17.0+ KB

4. 查看某一列的格式df['列名'].dtype

print(td_link_data['管理域'].dtype)

执行该命令后的结果如下。

int64

需要特别注意的是,object类型实际上可以包含多种不同的数据类型。例如,若某一列数据中同时存在整型、浮点型和字符串类型,Pandas会将整列统一标识为‘object’。因此,在处理此类数据时,可能需要预先使用str.replace()、float()、int()、astype()或apply()等方法进行清洗和类型转换。

5. 使用.astype()进行数据类型转换

df.index.astype('int64') # 索引类型转换
df.astype('int64') # 所有数据转换为 int64
df.astype('int64', copy=False) # 不与原数据关联
td_link_data.astype({'管理域': 'int32'}) # 指定字段转指定类型
td_link_data['管理域'].astype('float')   #某一列转换
td_link_data['链路ID'].astype('object') #某一列转换

参考链接:https://www.jianshu.com/p/8a5f0710cad3

至此,关于Pandas数据类型转换df.astype()及数据类型查看df.dtypes的使用介绍完毕。如需了解更多相关Pandas df.astype()及df.dtypes的内容,请搜索本站历史文章或继续浏览后续相关文章,感谢大家的支持。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。