Inverse DataFrame ordre des colonnes
Je veux simplement inverser l'ordre des colonnes d'un DataFrame.
Mon DataFrame:
data = {'year': [2010, 2011, 2012, 2011, 2012, 2010, 2011, 2012],
'team': ['Bears', 'Bears', 'Bears', 'Packers', 'Packers', 'Lions', 'Lions', 'Lions'],
'wins': [11, 8, 10, 15, 11, 6, 10, 4],
'losses': [5, 8, 6, 1, 5, 10, 6, 12]}
football = pd.DataFrame(data, columns=['year', 'team', 'wins', 'losses'])
De sortie réelle:
year team wins losses
0 2010 Bears 11 5
1 2011 Bears 8 8
2 2012 Bears 10 6
3 2011 Packers 15 1
4 2012 Packers 11 5
5 2010 Lions 6 10
6 2011 Lions 10 6
7 2012 Lions 4 12
J'ai pensé que cela pourrait fonctionner, mais il renverse la ligne afin de ne pas l'ordre des colonnes:
football[::-1]
J'ai aussi essayé:
football.columns = football.columns[::-1]
mais qui a renversé les étiquettes de colonne et non pas l'ensemble de la colonne elle-même.
Vous devez vous connecter pour publier un commentaire.
Une solution à proximité de ce que vous avez déjà tenté d'utiliser:
football.columns[::-1]
inverse l'ordre du DataFrame de la séquence des colonnes, etfootball[...]
reindexes le DataFrame à l'aide de cette nouvelle séquence.Une manière plus succincte pour obtenir la même chose est avec la
iloc
indexeur:La première
:
signifie "prendre toutes les lignes", le::-1
signifie pas en arrière à travers les colonnes.La
loc
d'indexation mentionnées dans @PietroBattiston réponse fonctionne de la même manière.Note: Comme des Pandas v0.20,
.ix
l'indexeur est obsolète en faveur de.iloc
/.loc
.Près de EdChum réponse... mais plus rapide:
Également remarquer un colon est redondant:
EDIT: un autre (minime) l'amélioration est apportée par l'aide de
.loc
plutôt que.ix
, comme dansfootball.loc[:,::-1]
.Note: Comme des Pandas v0.20,
.ix
l'indexeur est obsolète en faveur de.iloc
/.loc
.Vous pouvez utiliser fantaisie indexation
.ix
, passer les colonnes et les reverse ensuite la liste pour modifier l'ordre:timings
fantaisie indexation est légèrement plus rapide dans ce cas