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

如何批量修改Dataframe中包含@字符的单元格内容

实现方案

我们可以通过pandas的字符串匹配方法完成替换,以下是两种常用的可直接运行的实现方式:

方法1:使用loc定位符合条件的单元格赋值

这种方式逻辑清晰,适合需要明确筛选条件的场景:

# 筛选Phone / Mail列中包含@的行,直接替换对应单元格内容
# na=False参数可以避免列中存在空值时抛出报错
df.loc[df['Phone / Mail'].str.contains('@', na=False), 'Phone / Mail'] = 'Please fill in Phone Number'

方法2:使用正则替换

直接通过正则匹配所有含@的字符串完成整值替换,代码更简洁:

# regex=True开启正则匹配,.*@.*表示任意包含@的字符串
df['Phone / Mail'] = df['Phone / Mail'].replace(r'.*@.*', 'Please fill in Phone Number', regex=True)

注意事项

如果你的Phone / Mail列存在非字符串类型的值,建议先转成字符串类型再执行替换,避免匹配失败:

df['Phone / Mail'] = df['Phone / Mail'].astype(str)

完整测试示例

你可以用以下代码验证效果:

import pandas as pd

# 构造测试数据
data = {
    "Name": ["Max", "Celine"],
    "Phone / Mail": ["0176348334", "celine@mail.com"]
}
df = pd.DataFrame(data)

# 执行替换
df.loc[df['Phone / Mail'].str.contains('@', na=False), 'Phone / Mail'] = 'Please fill in Phone Number'

print(df)

运行输出结果和你预期的完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 10:45:03