You need to enable JavaScript to run this app. 如何将Python CSV统计代码的两个字典替换为单个result字典
优惠活动
大模型
产品
解决方案
定价
更多

如何将Python CSV统计代码的两个字典替换为单个result字典

单字典统计CSV入职人数代码修改方案

你只需要把原来两个性别对应的顶层字典,合并为以性别为顶层key的单个result字典即可,核心统计逻辑不需要改动,修改后的完整代码如下:

import csv

# 初始化单字典,顶层key为性别,下层存储对应性别的年份-季度统计数据
result = {'M': {}, 'F': {}}

with open('1000 Records.csv') as csv_file:
    csv_reader = csv.reader(csv_file)
    # 跳过表头行,如果你的CSV没有表头可以删掉下一行
    next(csv_reader)

    for row in csv_reader:
        year_of_joining = int(row[17])
        quarter_of_joining = row[15]
        gender = row[5]
        # 取对应性别的统计子字典
        current_stats = result[gender]

        if year_of_joining not in current_stats:
            current_stats[year_of_joining] = {f'Q{i + 1}': 0 for i in range(4)}

        current_stats[year_of_joining][quarter_of_joining] += 1


# 汇总所有出现过的年份去重排序
years = list(result['M'].keys()) + list(result['F'].keys())
years = sorted(list(set(years)))

for year in years:
    # 取对应年份的男女统计数据,没有的话默认全0
    male_data = result['M'].get(year, {'Q1':0, 'Q2':0, 'Q3':0, 'Q4':0})
    female_data = result['F'].get(year, {'Q1':0, 'Q2':0, 'Q3':0, 'Q4':0})
    # 统计上半年(H1=Q1+Q2)、下半年(H2=Q3+Q4)人数
    male_h1, male_h2 = male_data['Q1']+male_data['Q2'], male_data['Q3']+male_data['Q4']
    female_h1, female_h2 = female_data['Q1']+female_data['Q2'], female_data['Q3']+female_data['Q4']
    # 按需求输出,这里对齐你原来的打印逻辑调整了输出内容
    print(f"{year} 入职统计:H1 男{male_h1} 女{female_h1},H2 男{male_h2} 女{female_h2}")

主要修改点

  • 去掉原来的males、females两个独立字典,替换为顶层key为'M'/'F'的单个result字典,下层数据结构和原逻辑完全兼容
  • 补充了跳过CSV表头的逻辑(如果你的文件没有表头可以删除next(csv_reader)这行)
  • 修正了原代码里直接取年份对应字典作为人数的问题,改为按季度求和得到上下半年的统计结果

内容的提问来源于stack exchange,提问作者imhamza3333

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 03:27:00