在數據分析和清洗過程中,數據排序是相當重要的一個環節。在Python中,我們可以通過pandas庫中的DataFrame數據結構輕鬆實現數據的排序功能。本文將詳細介紹Python Dataframe的排序功能。
一、基礎排序
在pandas中,我們可以使用sort_values()函數實現數據的排序操作。例如:
import pandas as pd
data = {'name': ['Tom', 'Jack', 'Steve', 'Ricky'],
'age': [28, 34, 29, 42],
'gender': ['M', 'M', 'M', 'F']}
df = pd.DataFrame(data)
print(df)
# 對年齡進行升序排序
df = df.sort_values(by=['age'])
print(df)
上述代碼中,我們先創建了一個包含姓名、年齡和性別信息的DataFrame,然後使用sort_values()函數將DataFrame按照年齡升序排序。運行結果如下:
name age gender 0 Tom 28 M 1 Jack 34 M 2 Steve 29 M 3 Ricky 42 F name age gender 0 Tom 28 M 2 Steve 29 M 1 Jack 34 M 3 Ricky 42 F
我們可以發現,通過sort_values()函數按照年齡升序排序後,DataFrame的順序已經改變了。
二、多列排序
如果我們希望按照多列順序進行排序,只需要在sort_values()函數中傳入需要按照排序的列名即可。例如:
import pandas as pd
data = {'name': ['Tom', 'Jack', 'Steve', 'Ricky'],
'age': [28, 34, 29, 42],
'gender': ['M', 'M', 'M', 'F']}
df = pd.DataFrame(data)
print(df)
# 先按gender排序,再按age排序
df = df.sort_values(by=['gender', 'age'])
print(df)
上述代碼中,我們先創建了一個包含姓名、年齡和性別信息的DataFrame,然後通過sort_values()函數按照性別和年齡進行排序。運行結果如下:
name age gender 0 Tom 28 M 1 Jack 34 M 2 Steve 29 M 3 Ricky 42 F name age gender 1 Jack 34 M 2 Steve 29 M 0 Tom 28 M 3 Ricky 42 F
我們可以發現,按照性別和年齡進行排序後,DataFrame順序發生了改變。
三、排序方式
在排序時,我們還可以指定排序的方式。默認情況下,sort_values()函數採用升序排序,如果我們需要進行降序排序,則需要在函數中指定ascending為False。例如:
import pandas as pd
data = {'name': ['Tom', 'Jack', 'Steve', 'Ricky'],
'age': [28, 34, 29, 42],
'gender': ['M', 'M', 'M', 'F']}
df = pd.DataFrame(data)
print(df)
# 按照年齡降序排序
df = df.sort_values(by=['age'], ascending=False)
print(df)
上述代碼中,我們先創建了一個包含姓名、年齡和性別信息的DataFrame,然後通過sort_values()函數按照年齡進行降序排序。運行結果如下:
name age gender 0 Tom 28 M 1 Jack 34 M 2 Steve 29 M 3 Ricky 42 F name age gender 3 Ricky 42 F 1 Jack 34 M 2 Steve 29 M 0 Tom 28 M
我們可以發現,按照年齡降序排序後,DataFrame順序發生了改變。
四、缺失值排序
在數據分析中,經常會遇到缺失值的情況,如果我們希望在排序時將缺失值放在最前面或最後面,可以通過na_position參數進行設置。例如:
import pandas as pd
import numpy as np
data = {'name': ['Tom', 'Jack', 'Steve', 'Ricky'],
'age': [28, 34, np.nan, 42],
'gender': ['M', 'M', 'M', 'F']}
df = pd.DataFrame(data)
print(df)
# 缺失值放在前面
df = df.sort_values(by=['age'], na_position='first')
print(df)
# 缺失值放在後面
df = df.sort_values(by=['age'], na_position='last')
print(df)
上述代碼中,我們先創建了一個包含姓名、年齡和性別信息的DataFrame,其中年齡列中含有缺失值。然後通過na_position參數在排序時將缺失值放在最前面或最後面。運行結果如下:
name age gender 0 Tom 28.0 M 1 Jack 34.0 M 2 Steve NaN M 3 Ricky 42.0 F name age gender 2 Steve NaN M 0 Tom 28.0 M 1 Jack 34.0 M 3 Ricky 42.0 F name age gender 0 Tom 28.0 M 1 Jack 34.0 M 3 Ricky 42.0 F 2 Steve NaN M
我們可以發現,通過na_position參數的設置,可以將缺失值放在最前面或最後面。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/295540.html
微信掃一掃
支付寶掃一掃