You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何移除Pandas数据列末尾的.0并修正数据类型?

解决DataFrame合并后ID列带.0且类型异常的问题

核心原因

合并后ID列为object类型,是因为列中混合了浮点数(如23105.0)、整数(如0)甚至可能是字符串格式的数值,直接转换类型或用字符串处理方法会因类型不统一失效。

有效解决方法

方法1:统一转数值类型后转整数

适合列中以数值型(浮点数/整数)为主的情况:

import pandas as pd

# 先将object列转为数值类型,无法转换的会变为NaN
df['ID'] = pd.to_numeric(df['ID'], errors='coerce')
# 填充NaN(根据业务需求替换为0或其他值),再转为整数类型
df['ID'] = df['ID'].fillna(0).astype(int)

方法2:字符串处理后转整数

如果列中存在字符串格式的"23105.0",先做字符串清洗:

# 转为字符串后,移除末尾的.0后缀
df['ID'] = df['ID'].astype(str).str.replace(r'\.0$', '', regex=True)
# 转为数值类型,处理异常值后转整数
df['ID'] = pd.to_numeric(df['ID'], errors='coerce').fillna(0).astype(int)

方法3:合并时提前指定类型

从源头避免类型混乱,合并时直接指定ID列的类型:

# 合并两个DataFrame时,指定ID列类型为int
merged_df = pd.merge(df_left, df_right, on='ID', dtype={'ID': int})

验证结果

执行完上述方法后,可通过以下代码确认类型和数据格式:

print("ID列数据类型:", df['ID'].dtype)
print(df)

内容的提问来源于stack exchange,提问作者Linear17

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 22:10:24