如何在Python/Jupyter中将DataFrame多列float64转为int32
解决方案
给你两种简单的批量转换列数据类型的方法,直接在Jupyter里运行即可:
方法1:使用astype()直接指定列与目标类型
这是最直观的方式,适合明确知道要转换的列和目标类型的场景:
import pandas as pd # 假设你的DataFrame变量名为df,先定义类型映射字典 type_convert = {'Lat': 'int32', 'Lon': 'int32', 'SSS': 'int32'} # 批量转换列类型 df = df.astype(type_convert)
注意事项:
- 浮点数转整数默认会截断小数部分(比如
3.9会变成3),如果需要先四舍五入再转换,先运行这行再转类型:df[['Lat', 'Lon', 'SSS']] = df[['Lat', 'Lon', 'SSS']].round()
方法2:使用pd.to_numeric()自动向下转换
如果想让pandas自动选择合适的整数类型(这里会匹配到int32),可以用这种方式:
df[['Lat', 'Lon', 'SSS']] = df[['Lat', 'Lon', 'SSS']].apply(pd.to_numeric, downcast='integer')
验证转换结果
运行下面的代码确认类型是否转换成功:
# 查看各列数据类型 print(df.dtypes) # 或者查看DataFrame整体信息 df.info()
内容的提问来源于stack exchange,提问作者zam
相关产品推荐
相关产品推荐

