Hole den Spaltennamen, wo Wert im Pandas-Dataframe ist

8

Ich versuche, bei jedem Zeitstempel den Spaltennamen in einem Datenrahmen zu finden, für den der Wert mit dem in einer Zeitreihe zum selben Zeitstempel übereinstimmt.

Hier ist mein Datenrahmen:

%Vor%

Und die Zeitreihe mit Werten, die ich bei jedem Zeitstempel abgleichen möchte:

%Vor%

Dann wäre das Ergebnis:

%Vor%

Ich hoffe, meine Frage ist klar genug. Jeder hat eine Idee, wie man df_result bekommt?

Danke

Greg

    
leroygr 06.02.2013, 17:04
quelle

2 Antworten

4

Hier ist eine vielleicht unelegante Art, es zu tun:

%Vor%

Richten Sie eine Funktion ein, die den Spaltennamen ergreift, der den Wert enthält (aus ts ):

%Vor%

Testen Sie für jede Zeile, welche Elemente dem Wert entsprechen, und extrahieren Sie den Spaltennamen eines True.

Und apply es (zeilenweise):

%Vor%

d. Verwende df_result['Column'] = df_result.apply(get_col_name, axis=1) .

.

Hinweis: In get_col_name ist eine ganze Menge los, also vielleicht eine Erklärung:

%Vor%

Es könnte sein, dass es einen effizienteren Weg gibt, dies zu tun ...

    
Andy Hayden 06.02.2013, 18:02
quelle
3

Nach Andys detaillierter Antwort kann die Lösung zum Auswählen des Spaltennamens mit dem höchsten Wert pro Zeile auf eine einzige Zeile vereinfacht werden:

%Vor%     
Mike 10.12.2013 14:31
quelle

Tags und Links