[FIXED] Spalten in df aus Variablen in einem anderen df auswählen

Ausgabe

Ich habe 2 Pandas-Datenrahmen, von denen einer Spaltennamen auflistet, die ich im anderen auswählen möchte, wenn ich ihn durch eine Schleife laufen lasse.

Zum Beispiel:

df1 :

ausgewählte Spalte 1 ausgewählte Spalte 2
EIN C
B C

df2

EIN B C D
Wert Wert Wert Wert
Wert Wert Wert Wert

Ich möchte: (erster Lauf):

EIN C
Wert Wert
Wert Wert

(zweiter Lauf)

B C
Wert Wert
Wert Wert

Lösung

Wenn Sie keine Iterrows verwenden möchten (im Allgemeinen verpönt, wenn Sie mit DataFrames arbeiten), können Sie die DataFrames mit Verständnis wie folgt erstellen:

records = [
    {
        'A': 'A1', 'B': 'B1', 'C': 'C1', 'D': 'D1'
    },
    {
        'A': 'A2', 'B': 'B2', 'C': 'C2', 'D': 'D2'
    }
]

selectors = [
    {'C1': 'A', 'C2': 'C'},
    {'C1': 'B', 'C2': 'C'}
]

data_df = pd.DataFrame.from_records(records)
sel_df = pd.DataFrame.from_records(selectors)

#.T transposes the dataframe and gives us the rowindexes to use in iloc
dfs = [pd.DataFrame(data=data_df, columns=x) for x in [sel_df.iloc[s] for s in sel_df.T]] 

for df in dfs: 
    print(df)


Beantwortet von –
Allan Elder


Antwort geprüft von –
Jay B. (FixError Admin)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like