首頁 >後端開發 >Python教學 >揭秘:依特定條件進行排序的pandas技巧詳解

揭秘:依特定條件進行排序的pandas技巧詳解

WBOY
WBOY原創
2024-01-24 10:36:08700瀏覽

揭秘:依特定條件進行排序的pandas技巧詳解

Pandas排序技巧大揭密:如何依照特定條件進行排序,需要具體程式碼範例

在資料處理與分析過程中,排序是一項非常常見的操作。 Pandas庫是Python中用於資料分析的強大工具之一,其提供了豐富的排序函數,可以根據特定條件對資料進行排序。本文將介紹幾種常用的排序技巧,並提供具體的程式碼範例。

一、依照單列排序

首先,我們來看如何依照單列進行排序。 Pandas中的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()函數的key參數中。函數根據輸入行的"age"和"score"列之和來比較大小。

總結:

本文介紹了Pandas排序技巧的幾個面向:依照單列排序、依照多列排序、依照索引排序、自訂排序函數。這些排序功能的靈活使用,可以方便地根據特定條件對資料進行排序。希望本文的範例程式碼對大家在實務上有所幫助。

以上是揭秘:依特定條件進行排序的pandas技巧詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn