data = [[1,2,3],[4,5,6],[7,8,9]]
col = ['A','C','E']
df = pd.DataFrame(data, columns=col)
# A C E
#0 1 2 3
#1 4 5 6
#2 7 8 9
Wenn Sie in Pandas 0.23 oder früher A, B, C im Element mit loc angeben, Alle Elementnamen, die nicht in den Daten enthalten sind, wurden als fehlende Werte erstellt.
sel_col = ['A','B','C']
print(df.loc[:,sel_col])
#version 0.Vor 23
# A B C
#0 1 NaN 2
#1 4 NaN 5
#2 7 NaN 8
Seit Pandas 1.0 wurde jedoch der folgende Fehler angezeigt.
Anscheinend sollten Sie keine Elemente angeben, die nicht im Datenrahmen enthalten sind. Wenn Sie wie zuvor ein fehlendes Element im Datenrahmen erstellen möchten, können Sie stattdessen die Neuindizierung verwenden.
sel_col = ['A','B','C']
print(df.reindex(columns=sel_col))
# A B C
#0 1 NaN 2
#1 4 NaN 5
#2 7 NaN 8
Wenn Sie nur die im Datenrahmen enthaltenen Elemente anzeigen möchten, gehen Sie wie folgt vor Es scheint möglich zu sein, einen Schnittpunkt zwischen einem Datenrahmenelement und einem bestimmten Element zu nehmen.
print(df.loc[:,df.columns.intersection(sel_col)])
# A C
#0 1 2
#1 4 5
#2 7 8
Recommended Posts