如何从CSV文件每行提取逗号分隔值并分类为新列表
解决方案
你已经成功将CSV数据读取到listOfCSV中,每行是包含3个元素的列表:日期、空格分隔的中奖号码、乘数。以下是将这三类数据分别归类到新列表的具体实现:
基础拆分:提取三类核心数据
初始化三个空列表,遍历每行数据并将对应元素添加到列表中:
import csv with open('Lottery_Powerball_Winning_Numbers__Beginning_2010.csv', 'r') as readObj: heading = next(readObj) csvReader = csv.reader(readObj) listOfCSV = list(csvReader) # 初始化存储三类数据的空列表 dates = [] number_groups = [] multipliers = [] # 遍历拆分数据 for row in listOfCSV: dates.append(row[0]) number_groups.append(row[1]) multipliers.append(row[2]) # 查看前5项验证结果 print("日期列表(前5项):", dates[:5]) print("号码组列表(前5项):", number_groups[:5]) print("乘数列表(前5项):", multipliers[:5])
进阶处理:拆分号码为单独数字
如果后续绘图需要分析单个号码的分布,可以将空格分隔的号码拆分为整数,再拆分白球和强力球:
import csv with open('Lottery_Powerball_Winning_Numbers__Beginning_2010.csv', 'r') as readObj: heading = next(readObj) csvReader = csv.reader(readObj) listOfCSV = list(csvReader) dates = [] white_balls = [] powerballs = [] multipliers = [] for row in listOfCSV: dates.append(row[0]) # 将号码字符串转为整数列表,拆分白球(前5个)和强力球(最后1个) num_list = list(map(int, row[1].split())) white_balls.append(num_list[:5]) powerballs.append(num_list[5]) multipliers.append(int(row[2])) # 查看前5项验证结果 print("白球列表(前5项):", white_balls[:5]) print("强力球列表(前5项):", powerballs[:5])
拆分后的列表可以直接用于后续图表绘制,比如统计强力球出现频率、乘数分布等场景。
内容的提问来源于stack exchange,提问作者glitchyfuzzy
相关产品推荐
相关产品推荐

