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

如何按变量提取Pandas DataFrame中的随机非数值字符串?

提取Pandas数值列中混入的字符串

解决思路

遍历每个目标列,筛选出无法转换为数值的记录,提取其中的文本内容并按列整理,同时去重减少冗余。

代码实现

内存友好版(适配200万条记录的大数据集)

import pandas as pd

# 替换为你的DataFrame名称
df = your_dataframe_here

# 存储各列的异常字符串
col_strings = {}

for col in df.columns:
    # 标记无法转为数值的行
    is_non_numeric = pd.to_numeric(df[col], errors='coerce').isna()
    # 提取去重后的异常字符串
    non_num_vals = df.loc[is_non_numeric, col].drop_duplicates().tolist()
    if non_num_vals:
        col_strings[col] = non_num_vals

# 转为DataFrame方便查看
result = pd.DataFrame.from_dict(col_strings, orient='index').T

简洁版代码

import pandas as pd

df = your_dataframe_here

# 批量生成各列异常字符串集合
col_strings = {
    col: df[col][pd.to_numeric(df[col], errors='coerce').isna()].unique().tolist()
    for col in df.columns
}

result = pd.DataFrame([col_strings]).explode(df.columns.tolist())

要点说明

  • pd.to_numeric(..., errors='coerce'):将非数值内容转为NaN,以此定位异常行
  • drop_duplicates()/unique():避免重复提取相同文本,精简结果
  • 针对200万条记录的大表,逐列遍历的方法内存占用更低,避免一次性处理全量数据导致的内存溢出

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 01:20:03