[PYTHON] Réorganiser arbitrairement l'ordre des colonnes de Pandas.

introduction

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.

Méthode

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.

Préparation des données

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()

iris_01.png

Tri

#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']

résultat

#Définissez la liste triée dans l'argument de loc
df_iris.loc[:, list_col_sorted].head()

iris_03.png

en conclusion

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

Réorganiser arbitrairement l'ordre des colonnes de Pandas.
Obtenez la liste des colonnes et la liste des données de CASTable
Changer l'ordre de PostgreSQL dans Heroku
À propos de l'ordre épuré dans l'ordre d'importation flake8
Définissez la colonne spécifiée de QTableWidget sur ReadOnly StyledItemDelegate
La méthode de copie de pandas.DataFrame est une copie profonde par défaut
00. Ordre inverse des chaînes
Le début de cif2cell
Le sens de soi
le zen de Python
L'histoire de sys.path.append ()
La vengeance des types: la vengeance des types
Trier le tableau de chaînes par ordre de longueur et syllabaire japonais