Jupyter环境下修改DataFrame:删除冒号后密码仅保留邮箱数据
提取DataFrame中冒号前的邮箱字段
假设你存储「邮箱:密码」格式内容的列名为account,可直接用pandas的字符串处理方法完成提取:
方法1:按冒号分割取首段(适合格式统一的场景)
# 提取到新列 df['email'] = df['account'].str.split(':', expand=True).get(0) # 如果需要直接覆盖原列,替换左边的列名即可 # df['account'] = df['account'].str.split(':', expand=True).get(0)
方法2:正则匹配(容错性更高)
用正则匹配行首所有非冒号的字符,即使部分行没有冒号也不会抛出异常:
df['email'] = df['account'].str.extract(r'^([^:]+)')
验证示例
你可以用以下测试代码确认效果:
import pandas as pd # 构造模拟数据 test_df = pd.DataFrame({ 'account': [ 'alice123@gmail.com:passw0rd1', 'bob_huang@163.com:test@2024', 'charlie@qq.com:xyz987' ] }) # 执行提取 test_df['email'] = test_df['account'].str.extract(r'^([^:]+)') print(test_df[['account', 'email']])
运行后输出的email列即为仅保留邮箱的结果。
内容的提问来源于stack exchange,提问作者anass
相关产品推荐
相关产品推荐

