Was meine Eingangsdaten sind:Finding bestimmte Spaltennamen und Orte in Pandas Datenrahmen
- eine Dreiecksmatrix in einem Pandas Datenrahmen und Spaltennamen mit definierten Index
- eine Liste mit der gleichen Länge wie die gespeicherte Anzahl der Spalten in dem Datenrahmen
- eine Funktion, die
Was ein Element aus der Liste als Eingabe ich mag als nächstes tun:
012.351.- gelten die Funktion auf die Liste auf der Basis der Werte in dem Datenrahmen
- Plot der Ergebnisse der Funktion für jedes Element aus einer anderen Liste auf der Basis der Spalten des Datenrahmen
Ein kleines Beispiel : Jetzt
scores = np.array([[1,2,1.5,0.75],
[0,1,0.75,1.25],
[0,0,1,2],
[0,0,0,1]])
names = ['Andy','Bob','Craig','Dan']
bets = [100,120,135,130]
def getPrize(bet, x): # x defined somewhere elsewhere
prize = bet*x #do stuff here
return prize
names1 = ['Andy1','Bob1','Craig1','Dan1']
Results = pd.DataFrame(data=scores,index=names1,columns=names1)
definiere ich eine Bedingung auf den Werten in dem Datenrahmen und auf der Grundlage dieser Bedingung, würde ich mag die Position der entsprechenden Spalte finden (der integer-Wert als ob -conversely- I wurde mit df.iloc um es zu finden).
Was ich versuchte, war dies:
for i, r in Results.iterrows():
found = r[r>1]
col_index = r.columns.get_loc(found)
print col_index
Aber hier stehe ich vor dem Problem, dass AttributeError: 'Series' object has no attribute 'columns'
. Aber wenn ich dies schreibe statt:
col_ix, col_name = found.iteritems()
ich ValueError: need more than 1 value to unpack
bekommen - so richtig verwende ich iteritems nicht? Wenn jedoch die Werte print
sind, werden sie gedruckt, bevor der Fehler ausgelöst wird.
Schließlich würde ich gerne eine einzige Handlung mit dem "Preis" auf der y-Achse und den Namen auf der x-Achse haben, die ausgewählten (durch die Bedingung) Werte des Preises für jede Person (und so die andere Sache, die ich versuche zu erreichen, ist zu finden, welches Element der names
Liste die Teilzeichenfolge von jedem meiner resultierenden Spaltennamen ist).
Ich sehe! Danke, gute Antwort, aber falsche Frage. Es funktioniert nicht für meine echten Daten und jetzt sehe ich warum. Ich werde die Frage bearbeiten. – durbachit
Ja, ich denke über Ihre Frage nach und es hängt von Ihrer Funktion ab. Ist deine Funktion wirklich kompliziert und ist es nicht möglich Pandas oder numpy Funktion (en) ohne zu verwenden? – jezrael
Wenn möglich, fügen Sie am besten die gewünschte Ausgabe hinzu, vielleicht ändern Sie auch die Eingabe für ein besseres Verständnis. Vielen Dank. – jezrael