一、sort_values函數簡介
sort_values是Pandas庫中的一個用來對數據框進行排序的函數。sort_values函數常用於處理表格型數據,可以根據指定的列或索引排序,支持升序和降序排列。
# sort_values函數的基本使用方法 import pandas as pd df = pd.DataFrame({'name':['Tom','John','Jess','Mike'], 'age':[25,20,37,28], 'gender':['M','M','F','M']}) # 根據name列排序 sorted_df = df.sort_values(by='name')
二、sort_values函數的參數
sort_values函數包含多個參數,下面介紹一下常用的參數:
1. by: 用來指定排序的列名或索引,可以是單個字符串或者字符串列表。
2. ascending: 用來指定升序或降序排列,默認為升序。
3. inplace: 是否在原數據框上進行修改,默認為False。
4. na_position: 指定缺失值的排列順序,可以選擇’last’或’first’。
# sort_values函數的常用參數的示例 # 根據年齡進行降序排列 sorted_by_age_df = df.sort_values(by='age', ascending=False) # 根據兩個列進行排序 sorted_by_age_and_name_df = df.sort_values(by=['age', 'name']) # 在原數據框上進行修改 df.sort_values(by='age', inplace=True) # 缺失值排在最前面 sorted_by_name_df = df.sort_values(by='name', na_position='first')
三、sort_values實戰應用
1. 根據列排序
假設我們有一個包含不同城市的人口數據的數據框,我們想根據人口數量來進行降序排列。
import pandas as pd # 創建一個包含不同城市人口數量的數據框 cities = pd.DataFrame({'City':['Shanghai','Beijing','Guangzhou','Shenzhen','Tianjin'], 'Population':[24150000,21700000,14040000,12530000,12400000]}) # 將數據框按人口數量進行降序排列 sorted_cities = cities.sort_values(by='Population', ascending=False)
2. 處理缺失值
假設我們有一個包含無序電影的數據集,我們想要按照電影的發佈時間從早到晚排序,但是有一些電影的發佈時間缺失。在這種情況下,我們可以使用na_position參數將缺失值排在最前面或最後面。
import pandas as pd # 創建一個包含電影名稱和發佈時間的數據框 movies = pd.DataFrame({'Movie':['The Shawshank Redemption','The Godfather','The Dark Knight','The Godfather: Part II','Pulp Fiction','12 Angry Men'], 'Year':[1994,1972,2008,None,1994,1957]}) # 缺失值排在最前面 sorted_movies = movies.sort_values(by='Year', na_position='first')
3. 根據索引排序
除了根據列排序外,我們還可以根據索引進行排序。假設我們有一個包含學生考試成績的數據集,我們想把成績按升序排列,然後按照索引值重新排序。
import pandas as pd # 創建一個包含學生考試成績的數據框 grades = pd.DataFrame({'Math':[85,98,74,82], 'English':[92,78,88,97], 'Science':[88,94,90,86]}) # 按照數學成績進行升序排列,並按照索引重新排序 sorted_grades = grades.sort_values(by='Math').reset_index(drop=True)
四、總結
sort_values函數是Pandas的一個重要函數,能夠方便地對數據框進行排序並處理缺失值。通過本文的介紹,相信大家已經掌握了sort_values函數的基本使用方法和相關參數的含義,希望能夠對大家在數據處理中的實際應用有所幫助。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/282653.html