L'ordre des colonnes dans les pandas.concat
Je fais comme ci-dessous:
data1 = pd.DataFrame({ 'b' : [1, 1, 1], 'a' : [2, 2, 2]})
data2 = pd.DataFrame({ 'b' : [1, 1, 1], 'a' : [2, 2, 2]})
frames = [data1, data2]
data = pd.concat(frames)
data
a b
0 2 1
1 2 1
2 2 1
0 2 1
1 2 1
2 2 1
Les données de l'ordre de la colonne est en ordre de l'alphabet. Pourquoi est-il si?
et comment maintenir l'ordre original?
Double Possible de Comment modifier l'ordre de DataFrame colonnes?
Double Possible de la Préservation de l'Ordre des Colonnes - Python Pandas et de la Colonne Concat
Dict arent commandé, alors pourquoi les colonnes de l'ordonner?
Double Possible de la Préservation de l'Ordre des Colonnes - Python Pandas et de la Colonne Concat
Dict arent commandé, alors pourquoi les colonnes de l'ordonner?
OriginalL'auteur Edward | 2016-08-19
Vous devez vous connecter pour publier un commentaire.
Vous créez DataFrames de dictionnaires. Les dictionnaires sont un non-ordonnée qui signifie que les clés n'ont pas un ordre spécifique. Donc
et
sont les mêmes.
En plus que je suppose que les pandas sortes le dictionnaire clés décroissant par défaut (je n'ai malheureusement pas trouver le moindre indice dans les docs afin de prouver cette hypothèse) conduisant au comportement que vous rencontrez.
Donc la motivation de base serait de recourir /réorganiser les colonnes dans votre DataFrame. Vous pouvez le faire comme suit:
Comme une amélioration, vous n'avez pas à spécifier manuellement les colonnes. Vous pouvez le faire...
combined = pd.concat([df1, df2])[df1.columns]
. Ce n'supposons que vous disposez déjà d'un bloc de données avec les colonnes dans l'ordre que vous voulez. Mais qui a été mon cas.OriginalL'auteur albert
Vous pouvez créer l'original DataFrames avec OrderedDicts
OriginalL'auteur mohrtw
Cela devrait fonctionner.
OriginalL'auteur Philip Zelitchenko
vous pouvez également spécifier la commande comme ceci :
OriginalL'auteur Oumab10