假设您想要单独的字典,而不是“性别,按年份分组”(意味着年份是两个性别字典的顶级键),答案与您的上一个问题基本相同,除了您有两个单独的“result
" 字典(你可以组合它们,因为 Python 对象是引用)
import csv
males = {}
females = {}
with open('records.csv') as csv_file:
csv_reader = csv.DictReader(csv_file)
for row in csv_reader:
year_of_joining = int(row['Year of Join'])
quarter_of_joining = row['Quarter of Join']
gender = row['Gender']
result = males if gender == 'M' else females
if year_of_joining not in result:
result[year_of_joining] = {f'Q{i+1}': 0 for i in range(4)}
result[year_of_joining][quarter_of_joining] += 1
final_result = {"males": males, "females": females}
Input
Gender,Year of Join,Quarter of Join
F,2010,Q1
M,2010,Q2
F,2017,Q1
Output
from pprint import pprint
print('males', end=' ')
pprint(males)
print('females', end=' ')
pprint(females)
males {2010: {'Q1': 0, 'Q2': 1, 'Q3': 0, 'Q4': 0}}
females {2010: {'Q1': 1, 'Q2': 0, 'Q3': 0, 'Q4': 0},
2017: {'Q1': 1, 'Q2': 0, 'Q3': 0, 'Q4': 0}}