使用Pandas根据逗号分隔姓名查找并拼接对应ID值
需求说明
给定如下数据表:
| Name | Ids |
|---|---|
| Bob | '1','2' |
| Tom | '3','4' |
要求:当输入逗号分隔的姓名字符串(比如「Bob,Tom」或「Bob, Tom」)时,返回对应的所有ID值并以逗号拼接,最终输出格式为 '1','2','3','4'。需要用Pandas完成这个查找拼接操作。
实现代码
import pandas as pd # 初始化对应的数据表 df = pd.DataFrame({ 'Name': ['Bob', 'Tom'], 'Ids': ["'1','2'", "'3','4'"] }) def get_combined_ids(name_input): # 处理输入:拆分姓名、去除多余空格,兼容带/不带空格的输入格式 target_names = [name.strip() for name in name_input.split(',')] # 筛选匹配姓名的行 matched_data = df[df['Name'].isin(target_names)] # 拼接所有ID字符串 combined_result = ','.join(matched_data['Ids'].tolist()) return combined_result # 测试示例 test_input = 'Bob, Tom' output = get_combined_ids(test_input) print(output) # 输出结果:'1','2','3','4'
代码说明
- 先把原数据表用Pandas的DataFrame构建出来,确保
Ids列的格式和原表完全一致 - 处理函数里先对输入做清洗:按逗号拆分姓名后,去掉每个姓名前后的空格,不管输入是带空格还是不带空格的格式都能适配
- 用Pandas内置的
isin()方法快速筛选匹配行,比手动循环遍历数据高效得多 - 最后把筛选出来的所有ID字符串直接拼接,得到符合要求的结果
内容的提问来源于stack exchange,提问作者34653120
相关产品推荐
相关产品推荐

