这段代码运行良好,它以这种格式打印结果
我需要像这样的嵌套dict格式的结果
data = {
'year': {
'male': {'Q1': 1, 'Q2': 1, 'Q3': 1, 'Q4': 1, },
'female': { 'Q1': 1, 'Q2': 1, 'Q3': 1, 'Q4': 1, }
}
}
守则:
import csv
results = {'males': {}, 'females': {}}
with open('1000 Records.csv') as csv_file:
csv_reader = csv.reader(csv_file)
for row in csv_reader:
year_of_joining = int(row[17])
quarter_of_joining = row[15]
gender = 'males' if row[5] == 'M' else 'females'
if year_of_joining not in results[gender]:
results[gender][year_of_joining] = {f'Q{i + 1}': 0 for i in range(4)}
results[gender][year_of_joining][quarter_of_joining] += 1
years = list(results['males'].keys()) + list(results['females'].keys())
years = sorted(list(set(years)))
for year in years:
count = [results['males'].get(year, 0), results['females'].get(year, 0)]
print("Male's and Female's: %s: %s" % (year, count))
你很接近。在你的
for year in years
之外保留一本字典,其中存储年度盘点的运行结果:这是一个有效的解决方案:
上面代码的唯一区别是,它以稍微不同的格式提供输出,但我怀疑这可能是您首先想要的:
如果没有,请告诉我,我会修改它
我在代码中遇到了一些被认为“工作正常”的错误,所以我也修复了它们,并在这个过程中进行了一些优化。以下是我为测试目的创建的简单示例CSV文件的结果:
样本输出:
相关问题 更多 >
编程相关推荐