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

如何从含nan值的多列数据中移除字符串和特殊字符仅保留数字

基于Python Pandas的实现方案

你可以用正则匹配替换特殊字符的方式完成批量清洗,适配单/多列场景,同时兼容nan值处理:

前置依赖

确保你已经导入需要的库:

import pandas as pd
import numpy as np

单列处理代码

针对你给出的OTHER列,可直接用如下代码完成转换:

# 移除$符号和千位分隔逗号,转成浮点数值类型,nan值会自动保留
df['OTHER'] = df['OTHER'].replace(r'[\$,]', '', regex=True).astype(float)

# 如果需要输出时nan显示为空字符串(匹配你给出的预期输出样式),可额外加一行
df['OTHER'] = df['OTHER'].replace(np.nan, '', regex=True)

多列批量处理代码

如果要对多个列执行同样的清洗逻辑,只需要把目标列名放入列表批量遍历即可:

# 填入所有需要清洗的列名
clean_cols = ['OTHER', 'COL1', 'COL2', 'COL3']

for col in clean_cols:
    df[col] = df[col].replace(r'[\$,]', '', regex=True).astype(float)
    # 需转空字符串则加下行
    # df[col] = df[col].replace(np.nan, '', regex=True)

逻辑说明

  • 正则r'[\$,]'会匹配所有$符号和千位分隔用的逗号,直接替换为空即可剥离所有非数值的特殊字符
  • astype(float)转换不会影响原本的nan值,转换后的数据为浮点类型,可直接用于后续数值计算
  • 若无需做数值计算仅用于展示,再将nan替换为空字符串即可,完全匹配你给出的预期输出结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 10:36:03