Lorsqu'une colonne est ajoutée à un Pandas DataFrame, elle est ajoutée à la fin, mais il arrive parfois que vous souhaitiez spécifier l'ordre des colonnes du DataFrame lors de la sortie dans un fichier. En parlant de tri DataFrame, sort_values () et sort_index (), mais les deux trient dans le sens des lignes et ne prennent pas en charge le tri dans le sens des colonnes. Je ne l'utilise pas souvent, mais je veux l'utiliser quand je l'oublie, alors je vais le garder comme mémorandum.
Passez simplement une liste de noms de colonnes triés à l'argument Pandas loc. pandas.DataFrame.loc
L'index peut également être appliqué dans n'importe quel ordre.
from sklearn.datasets import load_iris
import pandas as pd
#Utiliser les données d'iris comme échantillon
iris = load_iris()
df_iris = pd.DataFrame(iris.data, columns=iris.feature_names)
#Trouvez la valeur moyenne de chaque élément et ajoutez un suffixe au nom de la colonne"_mean"Attacher
for col in df_iris.columns:
df_iris[col + "_mean"] = df_iris[col].mean()
df_iris.head()
#Créez une liste dans n'importe quel ordre de colonne
#Ici, récupérez la liste des noms de colonne de DataFrame, triez-la par ordre croissant et utilisez-la.
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']
#Définissez la liste triée dans l'argument de loc
df_iris.loc[:, list_col_sorted].head()
Le tri par nom de colonne entraîne désormais l'alignement des noms de colonne se terminant par "_mean" immédiatement après la colonne d'origine.
Dans l'apprentissage automatique, des centaines ou des milliers de fonctionnalités peuvent être créées à partir de dizaines ou plus d'éléments. Il est difficile de voir si les éléments correspondants sont séparés, comme lors de l'ajout d'un indicateur de valeur manquante, il est donc bon de se souvenir dans une telle situation.
Recommended Posts