2016-07-20 9 views
1

Es gibt ein Wörterbuch in der folgenden Form:Reconstruct Vektorfeld aus Python Wörterbuch durch verschachtelte Tupel verkeilt

vector_dict = {((3, 4), 2): 4678, 
       ((0, 2), 1): 0, 
       ... 
       } 

Das Tupel in den Tupel-verschachtelt entspricht xy-Koordinaten. Der nächste Teil ist eine ganze Zahl mit möglichen Werten n = 0, 1, 2, 3, die die vier Hauptrichtungen darstellen. Die Werte, die dadurch eingegeben werden, repräsentieren eine bestimmte Größenordnung. So wird das erste Schlüsselwertpaar: Vektor [1,0], bei x = 3, y = 4, skaliert um 4,678. Ich habe versucht, Pandas zu verwenden, aber ich kann nicht meinen Kopf drumherum, wie man das auf eine brauchbare Art und Weise extrahiert. Später möchte ich es im Großen und Ganzen ähnlich auf dem rechten Flügel der einen plotten aber vollständig das Brett Füllung: enter image description here

+0

Sie haben eine Reihe von '(‚x‘,‚y‘)' Punkte, wenn jeder aufeinanderfolgende Punkt durch die Position mit der Richtung und Größe der Bewegung vor diktiert wird. Ihre Daten sind nicht sinnvoll. – piRSquared

Antwort

1

Schauen Sie sich die Series constructor die Daten von einem dict zu laden. Dann können Sie unstack die Richtung in Achse 1 erhalten. Schließlich convert der Positionsindex in eine MultiIndex.

d = {((3, 4), 2): 4678, ((0, 2), 1): 0} 
df = pd.Series(d).unstack() 
df.index = pd.MultiIndex.from_tuples(df.index, names=['x', 'y']) 

print(df) 

ergibt

 1  2 
x y    
0 2 0.0  NaN 
3 4 NaN 4678.0