Maison >développement back-end >Tutoriel Python >Révélé : explication détaillée des techniques de tri des pandas selon des conditions spécifiques

Révélé : explication détaillée des techniques de tri des pandas selon des conditions spécifiques

WBOY
WBOYoriginal
2024-01-24 10:36:08700parcourir

Révélé : explication détaillée des techniques de tri des pandas selon des conditions spécifiques

Les compétences de tri des pandas révélées : comment trier selon des conditions spécifiques nécessite des exemples de code spécifiques

Dans le processus de traitement et d'analyse des données, le tri est une opération très courante. La bibliothèque Pandas est l'un des outils puissants d'analyse de données en Python. Elle fournit des fonctions de tri riches qui peuvent trier les données en fonction de conditions spécifiques. Cet article présentera plusieurs techniques de tri couramment utilisées et fournira des exemples de code spécifiques.

1. Trier par une seule colonne

Tout d’abord, voyons comment trier par une seule colonne. La fonction sort_values() dans Pandas peut trier les objets DataFrame ou Series. Vous trouverez ci-dessous un exemple d'ensemble de données, nous allons trier par la colonne "score" par ordre décroissant : sort_values()函数可以实现对DataFrame或者Series对象进行排序。下面是一个示例数据集,我们将按照"score"列进行降序排序:

import pandas as pd

data = {'name': ['Alice', 'Bob', 'Tom', 'Jerry'],
        'score': [90, 80, 95, 85],
        'age': [25, 30, 27, 23]}

df = pd.DataFrame(data)
df_sorted = df.sort_values(by='score', ascending=False)

print(df_sorted)

输出结果:

   name  score  age
2   Tom     95   27
0  Alice     90   25
3  Jerry     85   23
1    Bob     80   30

在上述代码中,我们使用sort_values()函数,并将参数by设置为要排序的列名。另外,ascending=False表示降序排序,若要进行升序排序,则设置为ascending=True

二、按照多列排序

除了单列排序,我们还可以按照多列进行排序。当存在多个排序条件时,可以使用sort_values()函数的by参数传入一个包含多个列名的列表。下面的示例将按照"score"列进行降序排序,若"score"列相同,则按照"age"列进行升序排序:

import pandas as pd

data = {'name': ['Alice', 'Bob', 'Tom', 'Jerry'],
        'score': [90, 80, 95, 85],
        'age': [25, 30, 27, 23]}

df = pd.DataFrame(data)
df_sorted = df.sort_values(by=['score', 'age'], ascending=[False, True])

print(df_sorted)

输出结果:

   name  score  age
2   Tom     95   27
0  Alice     90   25
3  Jerry     85   23
1    Bob     80   30

在上述代码中,我们传入了一个包含两个元素的列表作为by参数,分别对应两个排序条件。同时,我们可以通过传入一个布尔值的列表来设置每个排序条件的排序顺序。

三、按照索引排序

除了按照列进行排序,我们还可以按照索引进行排序。Pandas中的sort_index()函数可以实现索引排序。下面是一个示例:

import pandas as pd

data = {'name': ['Alice', 'Bob', 'Tom', 'Jerry'],
        'score': [90, 80, 95, 85],
        'age': [25, 30, 27, 23]}

df = pd.DataFrame(data)
df_sorted = df.sort_index(ascending=False)

print(df_sorted)

输出结果:

   name  score  age
3  Jerry     85   23
2    Tom     95   27
1    Bob     80   30
0  Alice     90   25

在上述代码中,我们通过调用sort_index()函数对索引进行排序。参数ascending=False表示降序排序,若要进行升序排序,则设置为ascending=True

四、自定义排序函数

有时候,我们需要按照自定义的函数进行排序。Pandas中的sort_values()函数提供了参数key,可以传入一个函数用于排序。下面是一个示例:

import pandas as pd

data = {'name': ['Alice', 'Bob', 'Tom', 'Jerry'],
        'score': [90, 80, 95, 85],
        'age': [25, 30, 27, 23]}

df = pd.DataFrame(data)

# 自定义排序函数,按照年龄和成绩之和进行排序
def custom_sort(row):
    return row['age'] + row['score']

df_sorted = df.sort_values(by='', key=custom_sort, ascending=False)

print(df_sorted)

输出结果:

   name  score  age
2   Tom     95   27
3  Jerry     85   23
0  Alice     90   25
1    Bob     80   30

在上述代码中,我们自定义了一个排序函数custom_sort(),并将其传入sort_values()函数的keyrrreee

Résultat de sortie :

rrreee

Dans le code ci-dessus, nous utilisons la fonction sort_values() et passons le paramètre by est défini sur le nom de la colonne à trier. De plus, ascending=False signifie un tri décroissant. Si vous souhaitez trier par ordre croissant, définissez-le sur ascending=True.

2. Trier par plusieurs colonnes🎜🎜En plus du tri par colonne unique, nous pouvons également trier par plusieurs colonnes. Lorsqu'il existe plusieurs conditions de tri, vous pouvez utiliser le paramètre by de la fonction sort_values() pour transmettre une liste contenant plusieurs noms de colonnes. L'exemple suivant sera trié par ordre décroissant selon la colonne "score". Si les colonnes "score" sont les mêmes, alors trié par ordre croissant selon la colonne "âge" : 🎜rrreee🎜Résultat de sortie : 🎜rrreee🎜In le code ci-dessus, nous avons passé dans un Les listes de deux éléments sont utilisées comme paramètres by, correspondant respectivement aux deux conditions de tri. Dans le même temps, nous pouvons définir l'ordre de tri de chaque condition de tri en transmettant une liste de valeurs booléennes. 🎜🎜3. Trier par index🎜🎜En plus du tri par colonnes, nous pouvons également trier par index. La fonction sort_index() dans Pandas peut implémenter le tri par index. Voici un exemple : 🎜rrreee🎜Résultat de sortie : 🎜rrreee🎜Dans le code ci-dessus, nous trions l'index en appelant la fonction sort_index(). Le paramètre ascending=False signifie un tri décroissant. Si vous souhaitez trier par ordre croissant, définissez-le sur ascending=True. 🎜🎜4. Fonction de tri personnalisée🎜🎜Parfois, nous devons trier selon une fonction personnalisée. La fonction sort_values() dans Pandas fournit le paramètre key, qui peut être transmis dans une fonction pour le tri. Voici un exemple : 🎜rrreee🎜Résultat de sortie : 🎜rrreee🎜Dans le code ci-dessus, nous avons personnalisé une fonction de tri custom_sort() et l'avons passée dans sort_values() dans le <code param>key de la fonction code>. Cette fonction compare les tailles en fonction de la somme des colonnes « âge » et « score » des lignes d'entrée. 🎜🎜Résumé : 🎜🎜Cet article présente plusieurs aspects des techniques de tri Pandas : tri par colonne unique, tri par colonnes multiples, tri par index et fonctions de tri personnalisées. L'utilisation flexible de ces fonctions de tri facilite le tri des données selon des conditions spécifiques. J'espère que l'exemple de code de cet article sera utile à tout le monde dans la pratique. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn