2017-11-21 10 views
-3

csv 파일에서 뉴욕시, 시카고, 워싱턴의 세 가지 다른 도시에 대한 bikeshare 데이터를 사용할 수 있습니다. 어떤 도시가 가장 많은 여행 횟수를 갖고 있는지, 그리고 어떤 도시가 가입자가 만든 여행 중 가장 많은 비율을 가지고 있는지 (User_type)를 찾아야합니다.가장 많은 여행 수를 가진 도시 찾기

def number_of_trips(filename): 

    with open(filename, 'r') as f_in: 
     # set up csv reader object 
     reader = csv.DictReader(f_in)   

     # initialize count variables 
     ny_trips = 0 
     wh_trips = 0 
     ch_trips = 0 
     n_usertype = 0 

     # tally up ride types 
     for row in reader:    
      if row['city'] == 'NYC': 
       ny_trips += 1 
      elif row['city'] == 'Chicago': 
       ch_trips += 1 
      else: 
       wh_trips +=1 

      if wh_trips <ny_trips> ch_trips: 
       city = 'NYC' 
      elif ny_trips <wh_trips> ch_trips: 
       city = 'Chicago' 
      else: 
       city = 'Washington' 
      return city 


     # return tallies as a tuple 
     return(city, n_customers, n_total) 

이 오류를 던지고있다 : KeyError: 'city'

다음은 내 코드입니다.

저는 파이썬에 매우 익숙합니다. 위의 요구 사항을 어떻게 달성 할 수 있는지 안내해주십시오.

+0

이미 시도한 내용이 있으면 질문을 편집하여 포함하십시오. –

+0

SO가 코드 작성 서비스가 아니기 때문에이 질문을 주제와 관련이 없도록 닫으려고합니다. 노력을 보여주세요. – EdChum

+0

CSV 파일에 '도시'열 헤더가 있습니까? 도움을받을 가능성을 높이려면 다음을 참조하십시오. [mcve] –

답변

0

pandas 라이브러리를 사용해보십시오.

import pandas as pd 

## Reading the CSV 
df = pd.read_cvs('file') 
## Counting the values of each city entry (assuming 'city' is a column header) 
df['city'].value_counts() 

두 번째 조각의 경우, aggfunc 값으로 len와 피벗 테이블을 사용할 수 있습니다. pd.pivot_table에 대한 설명서는 here입니다.