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

如何移除CSV文件中除1和0外的所有字母及其他数字?

Pandas 实现CSV仅保留0、1字符的处理方案

核心逻辑是用正则匹配批量替换所有非0、1的字符,不需要写循环逐行逐单元格处理,几行代码就能搞定。

完整处理代码

  1. 先导入依赖读入文件,必须指定读入格式为字符串,这是多数人处理失败的首要原因:
import pandas as pd
# 替换成你自己的CSV文件路径
df = pd.read_csv("your_file.csv", dtype=str)

不指定dtype=str的话,数值类列会被自动识别为int/float类型,后续正则替换会触发类型错误,或者直接跳过该列不处理。

  1. 执行全局替换,正则规则[^01]会匹配所有不是0也不是1的字符,直接替换为空字符串:
# 全表所有单元格执行过滤
df = df.replace(r"[^01]", "", regex=True)

必须加regex=True参数,否则pandas会默认做精确值匹配,只会替换内容完全等于[^01]的单元格,根本起不到字符过滤的效果,这是第二常见的失败原因。

  1. 处理完成后导出文件即可:
df.to_csv("processed_file.csv", index=False)

常见定制化调整

  • 如果不需要处理全表,只需要清洗指定列:
# 括号里换成你要处理的列名即可
target_cols = ["column1", "column2"]
df[target_cols] = df[target_cols].replace(r"[^01]", "", regex=True)
  • 如果清洗后出现空单元格(原单元格没有任何0/1字符),可以按需转成空值或者指定填充值:
# 把空内容转成pandas标准空值
df = df.replace("", pd.NA)
# 或者填充成你需要的内容,比如填充"0"
# df = df.replace("", "0")

处理效果示例

处理前单元格内容处理后单元格内容
a1b3c0!x10
1029test10
2a3s4d(空值)
1!0@1#11011

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 21:57:18