如何将Pandas的program_number列从object转为int?解决值重复问题
解决object类型列转integer及清理空格重复值的问题
- 先清理字符串前后的空白字符:使用
str.strip()方法可以精准去除每个值的首尾空格,比全局替换空格更适合处理类似'6 '这种带尾空格的情况,避免误删中间可能存在的有效空格(如果有的话)。 - 转换为整数类型:使用
pd.to_numeric()处理类型转换,通过errors='coerce'参数将无法转换为数字的值转为NaN,再用astype('Int64')转为支持缺失值的整数类型(普通int类型无法容纳NaN)。
具体代码示例:
import pandas as pd # 清理列值首尾的空白 df['program_number'] = df['program_number'].str.strip() # 转换为整数类型,无法转换的设为NaN df['program_number'] = pd.to_numeric(df['program_number'], errors='coerce').astype('Int64')
额外检查与处理
- 转换后可以用
df['program_number'].value_counts()查看去重后的数值分布,确认'6 '和6已统一为整数6。 - 如果存在无法转换的非数字值(如
'abc'),可以通过df[df['program_number'].isna()]定位这些行,根据业务需求选择删除(df.dropna(subset=['program_number']))或填充默认值。
内容的提问来源于stack exchange,提问作者isayoyo
相关产品推荐
相关产品推荐

