将DataFrame中含空格字符串的混合列转换为纯数值列
解决方法
首先构造示例DataFrame:
import pandas as pd df = pd.DataFrame({ 'A': [1, 2, 3], 'B': [120, '4 500', '3 000'] })
方法一:自定义函数处理
通过apply遍历列中每个元素,清理空格后尝试转换为整数:
def convert_to_int(val): if isinstance(val, str): cleaned_val = val.replace(' ', '') if cleaned_val.isdigit(): return int(cleaned_val) return val df['B'] = df['B'].apply(convert_to_int)
方法二:利用pandas内置工具简化操作
先将所有元素转为字符串、清除空格,再用pd.to_numeric自动转换可识别的数值,无法转换的保留原内容:
df['B'] = pd.to_numeric(df['B'].astype(str).str.replace(' ', ''), errors='ignore')
两种方法处理后,df['B']的结果均为[120, 4500, 3000],且全部为整数类型。
内容的提问来源于stack exchange,提问作者Coco
相关产品推荐
相关产品推荐

