Wenn eine Spalte zu einem Pandas-Datenrahmen hinzugefügt wird, wird sie am Ende hinzugefügt. Manchmal möchten Sie jedoch die Spaltenreihenfolge des Datenrahmens bei der Ausgabe in eine Datei angeben. Apropos Sortieren von DataFrame, sort_values () und sort_index () werden verwendet, aber beide sortieren in Zeilenrichtung und unterstützen das Sortieren in Spaltenrichtung nicht. Ich benutze es nicht oft, aber ich möchte es benutzen, wenn ich es vergesse, also werde ich es als Memorandum behalten.
Übergeben Sie einfach eine Liste sortierter Spaltennamen an das Argument Pandas loc. pandas.DataFrame.loc
Der Index kann auch in beliebiger Reihenfolge angewendet werden.
from sklearn.datasets import load_iris
import pandas as pd
#Verwenden Sie Irisdaten als Beispiel
iris = load_iris()
df_iris = pd.DataFrame(iris.data, columns=iris.feature_names)
#Suchen Sie den Durchschnittswert jedes Elements und fügen Sie dem Spaltennamen ein Suffix hinzu"_mean"Anfügen
for col in df_iris.columns:
df_iris[col + "_mean"] = df_iris[col].mean()
df_iris.head()
#Erstellen Sie eine Liste in einer beliebigen Spaltenreihenfolge
#Rufen Sie hier die Spaltennamensliste von DataFrame ab, sortieren Sie sie in aufsteigender Reihenfolge und verwenden Sie sie.
list_col_sorted = df_iris.columns.to_list()
list_col_sorted.sort()
list_col_sorted
['petal length (cm)',
'petal length (cm)_mean',
'petal width (cm)',
'petal width (cm)_mean',
'sepal length (cm)',
'sepal length (cm)_mean',
'sepal width (cm)',
'sepal width (cm)_mean']
#Legen Sie die sortierte Liste im Argument von loc fest
df_iris.loc[:, list_col_sorted].head()
Das Sortieren nach Spaltennamen führt nun dazu, dass Spaltennamen, die mit "_mean" enden, unmittelbar nach der ursprünglichen Spalte ausgerichtet werden.
Beim maschinellen Lernen können Hunderte oder Tausende von Funktionen aus Dutzenden oder mehr Elementen erstellt werden. Es ist schwer zu erkennen, ob die entsprechenden Elemente getrennt sind, z. B. beim Hinzufügen eines Flags für fehlende Werte. Daher ist es in einer solchen Situation gut, sich daran zu erinnern.
Recommended Posts