Heim  >  Artikel  >  Backend-Entwicklung  >  Enthüllt: Detaillierte Erläuterung der Pandas-Techniken zum Sortieren nach bestimmten Bedingungen

Enthüllt: Detaillierte Erläuterung der Pandas-Techniken zum Sortieren nach bestimmten Bedingungen

WBOY
WBOYOriginal
2024-01-24 10:36:08628Durchsuche

Enthüllt: Detaillierte Erläuterung der Pandas-Techniken zum Sortieren nach bestimmten Bedingungen

Die Sortierfähigkeiten von Pandas wurden enthüllt: Um nach bestimmten Bedingungen zu sortieren, sind spezifische Codebeispiele erforderlich

Im Prozess der Datenverarbeitung und -analyse ist das Sortieren ein sehr häufiger Vorgang. Die Pandas-Bibliothek ist eines der leistungsstarken Tools zur Datenanalyse in Python. Sie bietet umfangreiche Sortierfunktionen, mit denen Daten nach bestimmten Bedingungen sortiert werden können. In diesem Artikel werden mehrere häufig verwendete Sortiertechniken vorgestellt und spezifische Codebeispiele bereitgestellt.

1. Sortieren nach einer einzelnen Spalte

Schauen wir uns zunächst an, wie man nach einer einzelnen Spalte sortiert. Die Funktion sort_values() in Pandas kann DataFrame- oder Series-Objekte sortieren. Unten sehen Sie einen Beispieldatensatz. Wir werden nach der Spalte „Score“ in absteigender Reihenfolge sortieren: 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

Ausgabeergebnis:

rrreee

Im obigen Code verwenden wir die Funktion sort_values() und übergeben sie Der Parameter by wird auf den zu sortierenden Spaltennamen gesetzt. Darüber hinaus bedeutet ascending=False eine absteigende Sortierung. Wenn Sie in aufsteigender Reihenfolge sortieren möchten, setzen Sie es auf ascending=True.

2. Nach mehreren Spalten sortieren🎜🎜Zusätzlich zur Sortierung nach einer einzelnen Spalte können wir auch nach mehreren Spalten sortieren. Wenn mehrere Sortierbedingungen vorliegen, können Sie den Parameter by der Funktion sort_values() verwenden, um eine Liste mit mehreren Spaltennamen zu übergeben. Das folgende Beispiel wird in absteigender Reihenfolge nach der Spalte „Score“ sortiert. Wenn die Spalten „Score“ gleich sind, wird in aufsteigender Reihenfolge nach der Spalte „Alter“ sortiert: 🎜rrreee🎜Ausgabeergebnis: 🎜rrreee🎜In Im obigen Code haben wir eine Liste mit zwei Elementen übergeben, die als by-Parameter verwendet werden und jeweils den beiden Sortierbedingungen entsprechen. Gleichzeitig können wir die Sortierreihenfolge jeder Sortierbedingung festlegen, indem wir eine Liste boolescher Werte übergeben. 🎜🎜3. Nach Index sortieren🎜🎜Zusätzlich zur Sortierung nach Spalten können wir auch nach Index sortieren. Die Funktion sort_index() in Pandas kann eine Indexsortierung implementieren. Hier ist ein Beispiel: 🎜rrreee🎜Ausgabeergebnis: 🎜rrreee🎜Im obigen Code sortieren wir den Index, indem wir die Funktion sort_index() aufrufen. Der Parameter ascending=False bedeutet absteigende Sortierung. Wenn Sie in aufsteigender Reihenfolge sortieren möchten, setzen Sie ihn auf ascending=True. 🎜🎜4. Benutzerdefinierte Sortierfunktion🎜🎜Manchmal müssen wir nach einer benutzerdefinierten Funktion sortieren. Die Funktion sort_values() in Pandas stellt den Parameter key bereit, der in einer Funktion zum Sortieren übergeben werden kann. Hier ist ein Beispiel: 🎜rrreee🎜Ausgabeergebnis: 🎜rrreee🎜Im obigen Code haben wir eine Sortierfunktion custom_sort() angepasst und sie im sort_values() übergeben >key-Parameter der Code-Funktion. Diese Funktion vergleicht Größen basierend auf der Summe der Spalten „Alter“ und „Score“ der Eingabezeilen. 🎜🎜Zusammenfassung: 🎜🎜In diesem Artikel werden verschiedene Aspekte der Pandas-Sortiertechniken vorgestellt: Sortieren nach einer einzelnen Spalte, Sortieren nach mehreren Spalten, Sortieren nach Index und benutzerdefinierte Sortierfunktionen. Durch den flexiblen Einsatz dieser Sortierfunktionen ist es einfach, Daten nach bestimmten Bedingungen zu sortieren. Ich hoffe, dass der Beispielcode in diesem Artikel für alle in der Praxis hilfreich ist. 🎜

Das obige ist der detaillierte Inhalt vonEnthüllt: Detaillierte Erläuterung der Pandas-Techniken zum Sortieren nach bestimmten Bedingungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn