Skip to content
Advertisement

count how many people join in 1st half and 2nd half

enter image description here

import csv


result = {}


 with open('1000 Records.csv', 'r') as csv_file:
    
   csv_reader = csv.reader(csv_file)
    
      for row in csv_reader:
        
         year_of_joining = row[17]
        
         half_of_joining = row[16]
        
         if not year_of_joining in result:
            
            result[year_of_joining] = {half_of_joining: half_of_joining}
        
        else:
            
            result[year_of_joining].update({half_of_joining: half_of_joining})

the output I want that is like in the year 1980 people who join in 1st half and 2nd half in dictionary form

like this {1980:{H1:3, H2:0}, 1981:{H1:7, H2:8},…..}

Advertisement

Answer

You’re close, but you need to set 0 somewhere, and accumulate some results

import csv

result = {}

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'])
    half_of_joining = row['Half of Join']

    
    if year_of_joining not in result:
      result[year_of_joining] = {'H1': 0, 'H2': 0}
        
    result[year_of_joining][half_of_joining] += 1
User contributions licensed under: CC BY-SA
8 People found this is helpful
Advertisement