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

如何用Pandas筛选以@gmail.com结尾的邮件列?

代码错误分析及修正

你的代码主要有两个关键问题:

  • 行切片而非字符串切片:excelRead['mails'][:-11]是把整个邮件列的最后11条记录砍掉,不是对每个邮箱字符串截取末尾部分。这就导致你生成的布尔Series长度和原DataFrame不一致,触发了索引对齐错误。
  • 手动切片既算错长度又不可靠:就算你想截取字符串,@gmail.com实际是10个字符,应该用excelRead['mails'].str[-10:],但这种硬编码长度的方式本身就不合理——万一遇到@googlemail.com这类不同长度的后缀直接失效,完全没必要这么做。

正确写法

直接用pandas自带的字符串方法str.endswith(),简单又靠谱:

import pandas as pd

# 读取Excel并清理空值
excel_read = pd.read_excel('mailing.xlsx')
excel_read.dropna(inplace=True)

# 筛选所有@gmail.com结尾的记录
gmail_records = excel_read[excel_read['mails'].str.endswith('@gmail.com')]
print(gmail_records)

额外提示

  • 变量名尽量用小写+下划线的格式(比如excel_read),符合Python编码规范,可读性更强。
  • str.endswith()会自动遍历每个邮箱字符串,返回和原列长度一致的布尔值,完美适配DataFrame的布尔索引筛选逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 01:10:36