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

如何使用正则表达式筛选CSV中Column B单元格内以water开头的行

处理CSV多行单元格,保留特定开头内容

需求:CSV文件的Column B(代码中列名为SCHEDULES)单元格包含多行内容,需保留所有以water开头的行,删除其余行,用Python pandas实现。此前使用正则re.findall("^water'.*")因未处理换行场景报错。

测试数据

Column AColumn B
abc-dfcvrebtgsergbsedrfgesrg
water rdfe egreg
oluiuilegregreg
def fefdrtjtyujdtgfhndgfhjfh
water edgregerg

期望结果

Column AColumn B
abc-dfcvwater rdfe egreg
def fefdwater edgregerg

修正后的代码

import pandas as pd
import re

df = pd.read_csv("MyFile.csv")

# 定义处理函数:提取所有以water开头的行,用换行连接
def extract_water_lines(content):
    # 处理空值情况
    if pd.isna(content):
        return ""
    # 使用多行模式匹配,^匹配每行开头
    matches = re.findall(r"^water.*", str(content), flags=re.MULTILINE)
    # 用换行符连接匹配到的行,无匹配则返回空字符串
    return "\n".join(matches)

# 对SCHEDULES列应用处理函数
df["SCHEDULES"] = df["SCHEDULES"].apply(extract_water_lines)

df.to_csv("Nexpose_Schedules.csv", index=False)

关键说明

  1. 正则修正:添加re.MULTILINE标志,让^匹配单元格内每行的开头而非整个字符串的开头;同时去掉原正则中多余的单引号(测试数据中无单引号)。
  2. 高效处理:用apply替代循环遍历,更符合pandas的高效操作习惯。
  3. 空值处理:先判断单元格是否为空,避免转换字符串时出错。
  4. 结果格式化:将匹配到的多行用换行符连接,保持原单元格的多行格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 21:15:18