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

如何循环遍历DataFrame中的唯一ClientID以获取对应邮箱地址

如何循环遍历DataFrame中的唯一ClientID以获取对应邮箱地址

嘿,我来帮你搞定这个需求!先给你指出现有代码里的两个小问题:一是变量名不能有空格(customer account得改成customer_account),二是读取Excel文件时文件名要加引号,不然会被当成变量处理。

下面给你两种实用的解决方案,你可以根据自己的场景选择:

方法一:循环遍历唯一ID,用loc查询对应邮箱

这种方法直观易懂,适合数据量不大的场景:

import pandas as pd

# 修正后的基础代码
file = pd.read_excel('customers.xlsx')
customer_account = file['ClientID'].unique().astype(str)

# 循环遍历每个唯一ClientID获取邮箱
for client_id in customer_account:
    # 筛选出对应ClientID的行,提取email列的第一个值(因为ID唯一,只会有一个结果)
    email = file.loc[file['ClientID'] == client_id, 'email'].iloc[0]
    print(f"ClientID: {client_id}, 对应邮箱: {email}")

这里用loc精准定位到目标行,再通过iloc[0]取出邮箱值——因为你已经确保了ClientID是唯一的,所以不用担心有多个结果的问题。

方法二:先构建映射字典,再循环取值(更高效)

如果你的数据量比较大,推荐用这种方法,因为字典查询的速度比每次遍历DataFrame快很多:

import pandas as pd

file = pd.read_excel('customers.xlsx')
customer_account = file['ClientID'].unique().astype(str)

# 先把ClientID和email转成键值对字典
client_email_dict = file.set_index('ClientID')['email'].to_dict()

# 遍历唯一ID直接从字典取邮箱
for client_id in customer_account:
    # 用get方法可以设置默认值,避免ID不存在时报错
    email = client_email_dict.get(client_id, '未找到对应邮箱')
    print(f"ClientID: {client_id}, 对应邮箱: {email}")

这种方法先把数据预处理成字典,后续循环只需要查字典就行,效率提升很明显。

另外补充一句:如果你的ClientID本身就是字符串类型,那astype(str)可以省略,根据你的实际数据类型调整就好~

备注:内容来源于stack exchange,提问作者Madhav Rao

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 08:53:07