基于Pandas DataFrame条件创建列表(Python)
解决思路与实现方案
核心处理步骤
- 第一步:过滤无效数据,仅保留
GS列值为1的记录,直接排除Jack这类GS为非1值(如NaN)的球员 - 第二步:按
Team字段分组,把筛选后的球员分别归入TeamA和TeamB两个分组 - 第三步:提取每组内的球员姓名,整理成要求的字符串格式
代码实现(两种方案)
方案1:用Pandas处理表格数据(适合结构化数据场景)
import pandas as pd # 构建原始表格数据 data = { 'Player': ['Jack', 'John', 'Mike', 'James'], 'Team': ['A', 'B', 'A', 'A'], 'GS': [pd.NA, 1, 1, 1] } df = pd.DataFrame(data) # 筛选+分组提取球员名 filtered_data = df[df['GS'] == 1] team_groups = filtered_data.groupby('Team')['Player'].apply(list) # 生成目标格式字符串 TeamA = ', '.join(team_groups.get('A', [])) TeamB = ', '.join(team_groups.get('B', [])) # 输出结果 print(f"TeamA = {TeamA}") print(f"TeamB = {TeamB}")
方案2:纯Python基础语法实现(无需第三方库)
# 原始球员数据列表 players = [ {'Player': 'Jack', 'Team': 'A', 'GS': None}, {'Player': 'John', 'Team': 'B', 'GS': 1}, {'Player': 'Mike', 'Team': 'A', 'GS': 1}, {'Player': 'James', 'Team': 'A', 'GS': 1} ] # 初始化分组容器 team_rosters = {'A': [], 'B': []} # 遍历筛选并分组 for player in players: if player['GS'] == 1: team_rosters[player['Team']].append(player['Player']) # 输出结果 print(f"TeamA = {', '.join(team_rosters['A'])}") print(f"TeamB = {', '.join(team_rosters['B'])}")
两种方案运行后都会输出你需要的结果:
TeamA = Mike, James TeamB = John
内容的提问来源于stack exchange,提问作者bblackburn
相关产品推荐
相关产品推荐

