Les contenus liés au tri de DataFrame n'étaient simples qu'en japonais, je les ai donc résumés. Je vais aborder les endroits où la demande est faible.
Confirmé pour travailler avec les pandas 0.17.1.
Ce sont les données utilisées cette fois.
sort.py
import numpy as np
import pandas as pd
if __name__ == "__main__":
df = pd.DataFrame([[1, 3, "Hokkaido"], [4, 5, "Tokyo"], [3, 5, "Saitama"], [6, 9, "Préfecture d'Osaka"], [1, 1, "Préfecture d'Aomori"]])
df.index = ["Suzuki", "Tanaka", "Kimura", "Endo", "Yoshida"]
df.columns = ["Objet 1", "Point 2", "Point 3"]
Objet 1 | Point 2 | Point 3 | |
---|---|---|---|
Suzuki | 1 | 3 | Hokkaido |
Tanaka | 4 | 5 | Tokyo |
Kimura | 3 | 5 | Saitama |
Endo | 6 | 9 | Préfecture d'Osaka |
Yoshida | 1 | 1 | Préfecture d'Aomori |
Si vous essayez d'organiser ce tableau par élément 1,
df.sort_values (par = [" élément 1 "], croissant = Vrai)
Par
Objet 1 | Point 2 | Point 3 | |
---|---|---|---|
Suzuki | 1 | 3 | Hokkaido |
Yoshida | 1 | 1 | Préfecture d'Aomori |
Kimura | 3 | 5 | Saitama |
Tanaka | 4 | 5 | Tokyo |
Endo | 6 | 9 | Préfecture d'Osaka |
Ils sont classés par ordre croissant de l'élément 1 (par ordre croissant de valeur). Lorsque les valeurs de l'élément 1 sont les mêmes, elles sont organisées selon l'ordre dans le tableau d'origine. À ce stade, si vous changez ʻascending = True en ʻascending = False
, il sera arrangé par ordre décroissant (par ordre décroissant de valeur).
Si vous souhaitez dépendre de l'article 2 au lieu de la commande d'origine
df.sort_values (par = [" élément 1 "," élément 2 "], croissant = Vrai)
Par
Objet 1 | Point 2 | Point 3 | |
---|---|---|---|
Yoshida | 1 | 1 | Préfecture d'Aomori |
Suzuki | 1 | 3 | Hokkaido |
Kimura | 3 | 5 | Saitama |
Tanaka | 4 | 5 | Tokyo |
Endo | 6 | 9 | Préfecture d'Osaka |
Ce sera.
C'est un peu anormal, mais si vous souhaitez trier l'élément 1 par ordre croissant et l'élément 2 par ordre décroissant
df.sort_values (par = [" élément 1 "," élément 2 "], croissant = [Vrai, Faux])
Vous pouvez trier par.
Ensuite, triez l'élément 3. Comme avant
df.sort_values (par = [" élément 3 "], croissant = Vrai)
Puis
Objet 1 | Point 2 | Point 3 | |
---|---|---|---|
Suzuki | 1 | 3 | Hokkaido |
Kimura | 3 | 5 | Saitama |
Endo | 6 | 9 | Préfecture d'Osaka |
Tanaka | 4 | 5 | Tokyo |
Yoshida | 1 | 1 | Préfecture d'Aomori |
Il sera trié, mais probablement pas ce que vous voulez. Voici une liste dans l'ordre que vous souhaitez organiser, par exemple
tdhk = [" Hokkaido "," Préfecture d'Aomori "," Préfecture de Saitama "," Tokyo "," Préfecture d'Osaka "]
Comme
df [" élément 3 "] = pd.Categorical (df [" élément 3 "], tdhk)
Lorsque vous l'insérez, il sera trié dans l'ordre de la liste.
Objet 1 | Point 2 | Point 3 | |
---|---|---|---|
Suzuki | 1 | 3 | Hokkaido |
Yoshida | 1 | 1 | Préfecture d'Aomori |
Kimura | 3 | 5 | Saitama |
Tanaka | 4 | 5 | Tokyo |
Endo | 6 | 9 | Préfecture d'Osaka |
Recommended Posts