如何将DataFrame中所有int类型列转换为float类型?
将DataFrame中所有int类型列转为float的实现方法
当然可以通过判断数据类型来完成这个需求,这也是最直接高效的思路!下面分享两种常用的实现方式,你可以根据场景选择:
方法一:用select_dtypes快速筛选并转换
这种方法代码简洁,适合大多数常规场景,能一次性选中所有整数类型的列(包括int32、int64等子类):
import pandas as pd # 示例DataFrame df = pd.DataFrame({ 'id': [101, 102, 103], 'score': [95, 88, 76], 'price': [29.9, 39.9, 49.9], 'name': ['Alice', 'Bob', 'Charlie'] }) # 筛选所有int类型列并转为float int_columns = df.select_dtypes(include=['int']).columns df[int_columns] = df[int_columns].astype(float) # 验证结果 print(df.dtypes)
运行后你会看到原来的id和score列已经从int64变成float64了。
方法二:遍历列逐一判断类型(更灵活)
如果你需要对类型判断做更精细的控制(比如识别带空值的Int64类型列),可以用pd.api.types.is_integer_dtype来遍历判断:
for col in df.columns: # 精准判断列是否为整数类型(包括可空整数类型) if pd.api.types.is_integer_dtype(df[col]): df[col] = df[col].astype(float)
这种方法的优势是能覆盖更多边缘情况,比如当你的整数列存在缺失值、用Int64(大写I)类型存储时,也能准确识别并转换。
小提示
转换完成后,可以用df.dtypes命令查看所有列的数据类型,确认转换是否符合预期。
内容的提问来源于stack exchange,提问作者user13494862
相关产品推荐
相关产品推荐

