pandas 中 df.astype 类型转换报错及正确用法

白榆
白榆
发布时间:2026-10-13| 6人浏览过
原创

本文介绍 pandas 中使用 astype 进行强制类型转换时,直接转换含小数的字符串为 int 会引发 ValueError。通过先转为 float 再转 int 的两步法,可正确实现从字符串到整数的转换,避免特殊字符报错。

pandas 类型转换报错示例

直接查看代码示例。


import pandas as pd
from matplotlib import pyplot as plt
from datetime import datetime
filename='sitka_weather_2014.csv'

df=pd.read_csv(filename)
print(df.dtypes)


df[' Min Humidity']=df[' Min Humidity'].astype('float64')
df=df.astype({'Max Humidity':'float64','Max Dew PointF':'float64'})

print('*'*44)
print(df.dtypes)

补充知识:Python pandas 转换数据类型 astype(int) 报错问题

相关代码如下:

解决 astype 转换整数报错的方法


import pandas as pd
a = pd.Series([‘1.11',‘2.22'])
print(a)
a = a.astype(int)
print(a)

执行后出现报错信息。

ValueError: invalid literal for int() with base 10: ‘1.11'

修正后的代码如下:


import pandas as pd
a = pd.Series([‘1.11',‘2.22'])
print(a)
a = a.astype(float).astype(int)
print(a)

运行结果如下:

0 1.11 1 2.22 dtype: object 0 1 1 2 dtype: int32

报错原因分析:

直接使用 astype(int) 将字符串转换为整型时,字符串中的小数点被视为非法字符,从而导致转换失败。

正确的做法是先转换为浮点型数据,astype(int) 随后会将数值作为数字进行转换,从而成功得到整型结果。

以上关于 pandas 强制类型转换 df.astype 的实例分享完毕,希望能为读者提供参考,欢迎继续支持本站。

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

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 算法库。