Wie man Barsche und Achse die gleiche Länge?

Für meine Aufgabe, ich sollte mich um eine Darstellung der tracks 20 Wirbelstürme auf einer Karte mit matplotlib. Aber wenn ich meinen code erhalte ich die Fehlermeldung: AssertionError:Grouper and axis must be the same length

Hier der code, den ich habe:

import numpy as np
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt 
from PIL import *
fig = plt.figure(figsize=(12,12))

ax = fig.add_axes([0.1,0.1,0.8,0.8])

m = Basemap(llcrnrlon=-100.,llcrnrlat=0.,urcrnrlon=-20.,urcrnrlat=57.,
        projection='lcc',lat_1=20.,lat_2=40.,lon_0=-60.,
        resolution ='l',area_thresh=1000.)

m.bluemarble()
m.drawcoastlines(linewidth=0.5)
m.drawcountries(linewidth=0.5)
m.drawstates(linewidth=0.5)

# Creates parallels and meridians

m.drawparallels(np.arange(10.,35.,5.),labels=[1,0,0,1])
m.drawmeridians(np.arange(-120.,-80.,5.),labels=[1,0,0,1])
m.drawmapboundary(fill_color='aqua')

# Opens data file

import pandas as pd
name = [ ]
df = pd.read_csv('louisianastormb.csv')
for name, group in df.groupby([name]):
    latitude = group.lat.values
    longitude = group.lon.values
    x,y = m(longitude, latitude)
    plt.plot(x,y,'y-',linewidth=2 )
    plt.xlabel('Longitude')
    plt.ylabel('Latitude')
    plt.title('20 Hurricanes with Landfall in Louisiana')

plt.savefig('20hurpaths.jpg', dpi=100)

Hier die komplette Fehlerausgabe:

 Traceback (most recent call last): 
File "/home/darealmzd/lstorms.py", line 31, in <module> 
for name, group in df.groupby([name]): 
File "/usr/local/lib/python2.7/dist-packages/pandas/core/generic.py", line 186, in groupby 
squeeze=squeeze) 
File "/usr/local/lib/python2.7/dist-packages/pandas/core/groupby.py", line 533, in groupby 
return klass(obj, by, **kwds) 
File "/usr/local/lib/python2.7/dist-packages/pandas/core/groupby.py", line 197, in __init__ 
level=level, sort=sort) 
File "/usr/local/lib/python2.7/dist-packages/pandas/core/groupby.py", line 1325, in _get_grouper 
ping = Grouping(group_axis, gpr, name=name, level=level, sort=sort) 
File "/usr/local/lib/python2.7/dist-packages/pandas/core/groupby.py", line 1129, in __init__ 
self.grouper = _convert_grouper(index, grouper) 
File "/usr/local/lib/python2.7/dist-packages/pandas/core/groupby.py", line 1350, in _convert_grouper 
raise Assertionerror('Grouper and axis must be same length') 
Assertionerror: Grouper and axis must be same length 
  • Sie müssen geben einige weitere details. Welcher Zeile der Fehler tritt auf? Ist es das erste mal durch deine for-Schleife? Was ist die volle Fehlerausgabe?
  • Ich habe gerade die komplette Fehlerausgabe. Ich habe Probleme mit group by zur Gruppierung der Längen-und Breitengrad-Werte, um den Verlauf der Pfad des Sturms.
  • Es sieht aus wie name leer ist, meinten Sie, das zu tun? Wahrscheinlich benötigen, um eine Spalte mit dem Namen gibt.
  • Auch, können Sie das Ergebnis print df.head(5) bis auch da?
  • Ok, danke. Hat die Spalte Namen 'lat' und/oder 'lon' angegeben werden in der csv-Datei? Was ich versuche zu tun, ist die Länge und die Breite von Spalten aus der Datei in zwei separate Liste, so dass ich könnte zeichnen Sie auf die Karte.
InformationsquelleAutor mikez1 | 2013-10-20
Schreibe einen Kommentar