[PYTHON] Ne changez pas l'ordre des colonnes lors de la concaténation des trames de données pandas.

problème

Lors de la concaténation de trames de données pandas à l'aide de pd.concat, l'ordre des colonnes peut changer arbitrairement.

>>> df = pd.DataFrame([[1, 2], [3, 4]], index=[0, 1], columns=['B', 'A'])
>>> df2 = pd.DataFrame([[1, 2], [3, 4]], index=[0, 1], columns=['A', 'B'])
>>> pd.concat([df, df2])
   A  B #B A est bon selon df!
0  2  1
1  4  3
0  1  2
1  3  4

Solution

Pour conserver l'ordre des colonnes inchangé, utilisez la méthode DataFrame.append.

>>> df.append(df2)[df.columns.tolist()]
   B  A
0  1  2
1  3  4
0  2  1
1  4  3

Vous pouvez maintenant combiner les trames de données tout en conservant l'ordre des colonnes df. Si vous voulez combiner plusieurs trames de données, vous pouvez passer une liste de trames de données telles que df.append ([df1, df2]).

Cependant, DataFrame.append est lent et ne doit pas être utilisé lors de la jonction de plusieurs lignes.

référence

Postscript

J'ai oublié d'écrire l'environnement d'exécution, alors je l'ai ajouté

Recommended Posts

Ne changez pas l'ordre des colonnes lors de la concaténation des trames de données pandas.
[Python] Extrait les blocs de données de Pandas qui ne correspondent pas à une colonne spécifique avec d'autres blocs de données
Changer l'ordre de PostgreSQL dans Heroku
Exemple de ce qu'il faut faire lorsque l'exemple de script ne fonctionne pas (OpenCV-Python)
Changer le bloc de données des données d'achat de pandas (produit ID X) en dictionnaire
Dans pandas.DataFrame, même lors de l'attribution d'une seule colonne spécifique, si l'index est attaché, vous n'avez pas à vous soucier de l'ordre des données
Lorsque «zipimport.ZipImportError: can't decompress data; zlib not available» apparaît lors de l'installation de la version de pyenv
Récapitulatif des méthodes Pandas utilisées lors de l'extraction de données [Python]
Ne pas être conscient du contenu des données en python
Ce que vous ne devriez pas faire dans le processus d'analyse des données de séries chronologiques (y compris la réflexion)
Le websocket de toio (nodejs) et python / websocket ne se connecte pas.
Une collection de méthodes utilisées lors de l'agrégation de données avec des pandas
La méthode minimale à retenir lors de l'agrégation de données avec Pandas
Gérez le chevauchement lors du dessin d'un diagramme de dispersion avec une grande quantité de données (Matplotlib, Pandas, Datashader)
Changer le thème de Jupyter
Changer le style de matplotlib
Le pouvoir des pandas: Python
Lors de l'incrémentation de la valeur d'une clé qui n'existe pas
Expliquer le mécanisme de Linux que vous ne connaissez pas de manière inattendue
Que faire lorsque les paramètres de l'extension jupyterlab ne sont pas reflétés
Que se passe-t-il lorsque je change les hyper paramètres de SVM (noyau RBF)?