2017-07-14 31 views
0

質問:以下のコードを実行中にエラーが発生します。私はこれを初めて熟知しており、どのようにして問題を解決するかはわかりません。各座標点を自治区に割り当てるcreae関数パイソン3においてAttributeError: 'dict'オブジェクトに 'iteritems'属性がありません

def find_borough(lat,lon): 
     """ 
     return the borough of a location given its latitude and longitude 
     lat: float, latitude 
     lon: float, longitude 
     """ 
     boro = 0 # initialize borough as 0 
     for k,v in boros.iteritems(): # update boro to the right key corresponding to the parent polygon 
      if v['polygon'].contains(Point(lon,lat)): 
       boro = k 
       break # break the loop once the borough is found 
     return [boro] 

## Analyse the cluster now 
# create data frame of boroughs 
    df = data1[data1.Trip_duration>=1350] 
    orig_dest = [] 
    for v in df[['Pickup_latitude','Pickup_longitude','Dropoff_latitude','Dropoff_longitude']].values: 
     orig_dest.append((find_borough(v[0],v[1])[0],find_borough(v[2],v[3])[0])) 
    df2 = pd.DataFrame(orig_dest) 



     --------------------------------------------------------------------------- 
     AttributeError       Traceback (most recent call last) 
     <ipython-input-92-6a4861346be4> in <module>() 
      35 orig_dest = [] 
      36 for v in df[['Pickup_latitude','Pickup_longitude','Dropoff_latitude','Dropoff_longitude']].values: 
     ---> 37  orig_dest.append((find_borough(v[0],v[1])[0],find_borough(v[2],v[3])[0])) 
      38 df2 = pd.DataFrame(orig_dest) 
      39 

     <ipython-input-92-6a4861346be4> in find_borough(lat, lon) 
      24  """ 
      25  boro = 0 # initialize borough as 0 
     ---> 26  for k,v in boros.iteritems(): # update boro to the right key corresponding to the parent polygon 
      27   if v['polygon'].contains(Point(lon,lat)): 
      28    boro = k 

     AttributeError: 'dict' object has no attribute 'iteritems' 
+0

Python 3でPython 2のメソッドを使用しようとしています。 – user2357112

+0

代わりに 'boros.items()'を使用します – Sriram

+0

ありがとうSriram。出来た! – Victor

答えて

0

dict.iteritemsdict.itemsに改名されました。コード内でこの名前を変更する必要があります。 Python 2ではも動作しますが、これはアイテムのリストを返しますが、Python 2ではdict.iteritems(そしてPython 3ではdict.items)はジェネレータを返し、アイテムに対する低メモリループを可能にします。

関連する問題