2017-11-21 7 views
-3

csvファイルでは、NYC、シカゴ、ワシントンの3つの異なる都市でbikeshareデータを利用できます。どの都市が最も多くの旅行をしているのか、そしてどの都市が加入者が行った旅行の割合が最も高いのかを知る必要があります(User_type)。以下は最も高いトリップ数を持つ都市を探す

私のコードです:KeyError: 'city'

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) 

これはエラーを投げています。

私は非常にPythonに新しいです - 上記の要件を達成する方法を教えてください。

+0

何かを試したことがある場合は、質問を編集して追加してください。 –

+0

SOはコード作成サービスではないため、この質問を議論の対象外としています。あなたの努力を示してください – EdChum

+0

あなたのCSVファイルに 'city'列見出しがありますか?助けを得る機会を増やすには、以下を参考にしてください:[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です。

関連する問題