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

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

本文介绍 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 相关产品和应用

全部下载

专题列表