2017-07-28 3 views
0

Ich frage mich, wie man dieses Problem am besten anzugehen. Ich habe 2 Datenrahmen:Python Extrahieren dynamische Menge von Spalten

df1 
     3  4  5   6 
0 NaN  NaN  Sea  NaN 
1 light medium light medium 
2  26  41.5  15  14 
3  32  40  18  29 
4  41  29  19  42 

df2 
     3  4  5  6   7   8 
0 NaN  NaN  NaN  Sea  NaN  NaN 
1 light medium heavy  light medium heavy 
2  26 41.5  21   15  14  29 
3  32  40  19   18  29  31 
4  41  29  18   19  42  35 

Und ich versuche das ‚Meer‘ Spaltenbereich als solche zu isolieren:

df1 
     5  6 
0  Sea  NaN 
1 light medium 
2  15  14 
3  18  29 
4  19  42 

df2 
     6   7   8 
0  Sea  NaN   NaN 
1 light medium  heavy 
2  15  14   29 
3  18  29   31 
4  19  42   35 

Mein erster Gedanke ist, um irgendwie die erste Spalte Instanzen von ‚Licht‘ fallen und 'mittel' oder 'leicht' 'mittel' 'schwer'. Ich bin mir jedoch nicht sicher, wie ich das erreichen soll. Wenn jemand eine bessere Idee/Lösung hat, bitte lass es mich wissen. Ich entschuldige mich für den Mangel an Versuch, aber ich weiß wirklich nicht, wie man dieses Problem anzugehen

+0

wie Sie eine Spalte sowohl '‚Sea'' und '‘ light'' genannt haben. Sie sollten Ihren Datenrahmen richtig einrichten – DJK

+0

@ djk47463 das sind keine Spaltennamen, sondern Zeichenketten innerhalb der Spalte. Die Spaltennamen sind ganze Zahlen – codeninja

Antwort

0

Ok hier ist meine Antwort, es dynamisch zu tun. Kann nicht die schnellsten

for col in df1: 
    if df1.loc[0,col] == 'Sea': 
     break 
    else: 
     del df1[col] 

Dann werden Sie die gleiche Sache für den zweiten Datenrahmen tun könnten

+0

danke für die Bearbeitungen/Antwort! Ich suche jedoch nach einer dynamischen Lösung. Ich habe versucht, einen Weg zu finden, um die Spaltennummer von "Sea" zurückzugeben und dann zu versuchen, einen neuen Datenrahmen zu erstellen, wo es weiter geht, wenn das Sinn macht – codeninja