如何访问字典中Pandas Series内指定球队对应的Pos值
解决方案
示例数据结构
先假设你的dict_group结构如下(模拟业务数据):
import pandas as pd dict_group = { 'A组': pd.DataFrame({'Pos': [1, 2, 3, 4], 'Team': ['Qatar', 'Senegal', 'Netherlands', 'Ecuador']}), 'B组': pd.DataFrame({'Pos': [1, 2, 3, 4], 'Team': ['England', 'USA', 'Iran', 'Wales']}) }
直接获取指定球队的Pos值
通过定位分组、筛选球队,直接提取对应Pos值:
# 定义目标分组和球队 target_group = 'A组' target_team = 'Senegal' # 提取Pos值 pos_value = dict_group[target_group].loc[dict_group[target_group]['Team'] == target_team, 'Pos'].iloc[0] print(pos_value) # 输出:2
封装成函数(复用场景)
如果需要多次查询,封装成函数更高效:
def get_team_pos(dict_group, group_name, team_name): # 检查分组是否存在 if group_name not in dict_group: return None group_data = dict_group[group_name] # 筛选目标球队的Pos值 team_pos = group_data[group_data['Team'] == team_name]['Pos'] # 返回结果(无匹配则返回None) return team_pos.iloc[0] if not team_pos.empty else None # 使用示例 print(get_team_pos(dict_group, 'A组', 'Senegal')) # 输出:2
注意事项
- 确保分组名、球队名的拼写、大小写完全匹配,否则会无法匹配结果
- 若同一分组内存在重复球队名,
iloc[0]会返回第一个匹配项的Pos值,可根据实际需求调整逻辑 - 无匹配结果时,函数返回
None,你也可以改为抛出异常或返回特定标记值
内容的提问来源于stack exchange,提问作者Segmentation Fraud
相关产品推荐
相关产品推荐

