python?pandas?數(shù)據(jù)排序的幾種常用方法
前言:
pandas中排序的幾種常用方法,主要包括sort_index和sort_values。
基礎(chǔ)數(shù)據(jù):
import pandas as pd import numpy as np data = { 'brand':['Python', 'C', 'C++', 'C#', 'Java'], 'B':[4,6,8,12,10], 'A':[10,2,5,20,16], 'D':[6,18,14,6,12], 'years':[4,1,1,30,30], 'C':[8,12,18,8,2] } index = [9,3,4,5,2] df = pd.DataFrame(data=data, index = index) print("df數(shù)據(jù):\n", df, '\n')
out:
df數(shù)據(jù):
A B C D brand years
9 10 4 8 6 Python 4
3 2 6 12 18 C 1
4 5 8 18 14 C++ 1
5 20 12 8 6 C# 30
2 16 10 2 12 Java 30
按行索引排序:
print("按行索引排序:\n", df.sort_index(), '\n')
out:
按行索引排序:
A B C D brand years
2 16 10 2 12 Java 30
3 2 6 12 18 C 1
4 5 8 18 14 C++ 1
5 20 12 8 6 C# 30
9 10 4 8 6 Python 4
通過設(shè)置參數(shù)ascending可以設(shè)置升序或者降序排序,默認情況下ascending=True,為升序排序。
設(shè)置ascending=False時,為降序排序。
print("按行索引降序排序:\n", df.sort_index(ascending=False), '\n')
out:
按行索引降序排序:
A B C D brand years
9 10 4 8 6 Python 4
5 20 12 8 6 C# 30
4 5 8 18 14 C++ 1
3 2 6 12 18 C 1
2 16 10 2 12 Java 30
按列的名稱排序:
設(shè)置參數(shù)axis=1實現(xiàn)按列的名稱排序:
print("按列名稱排序:\n", df.sort_index(axis=1), '\n')
out:
按列名稱排序:
A B C D brand years
9 10 4 8 6 Python 4
3 2 6 12 18 C 1
4 5 8 18 14 C++ 1
5 20 12 8 6 C# 30
2 16 10 2 12 Java 30
同樣,也可以設(shè)置ascending參數(shù):
print("按列名稱排序:\n", df.sort_index(axis=1, ascending=False), '\n')
out:
按列名稱排序:
years brand D C B A
9 4 Python 6 8 4 10
3 1 C 18 12 6 2
4 1 C++ 14 18 8 5
5 30 C# 6 8 12 20
2 30 Java 12 2 10 16
按數(shù)值排序:
sort_values()是pandas中按數(shù)值排序的函數(shù):
1、按單個列的值排序
sort_values()中設(shè)置單個列的列名,可以對單個列進行排序,通過設(shè)置ascending可以設(shè)置升序或者降序。
print("按列名稱A排序:\n", df.sort_values('A'), '\n')
out:
按列名稱排序:
A B C D brand years
3 2 6 12 18 C 1
4 5 8 18 14 C++ 1
9 10 4 8 6 Python 4
2 16 10 2 12 Java 30
5 20 12 8 6 C# 30
設(shè)置ascending=False進行降序排序:
print("按列名稱A降序排序:\n", df.sort_values('A', ascending=False), '\n')
out:
按列名稱A降序排序:
A B C D brand years
5 20 12 8 6 C# 30
2 16 10 2 12 Java 30
9 10 4 8 6 Python 4
4 5 8 18 14 C++ 1
3 2 6 12 18 C 1
按多個列的值排序:
先按year列的數(shù)據(jù)進行升序排序,year列相同的再看B列進行升序排序
print("按多個列排序:\n", df.sort_values(['years', 'B']), '\n')
out:
按多個列排序:
A B C D brand years
3 2 6 12 18 C 1
4 5 8 18 14 C++ 1
9 10 4 8 6 Python 4
2 16 10 2 12 Java 30
5 20 12 8 6 C# 30
也可以分別設(shè)置列的升序、降序來排序:
years列為升序,B列為降序。
print("按多個列排序:\n", df.sort_values(['years', 'B'], ascending=[True, False]), '\n')
out:
按多個列排序:
A B C D brand years
4 5 8 18 14 C++ 1
3 2 6 12 18 C 1
9 10 4 8 6 Python 4
5 20 12 8 6 C# 30
2 16 10 2 12 Java 30
inplace使用:
inplace=True:不創(chuàng)建新的對象,直接對原始對象進行修改;默認是False,即創(chuàng)建新的對象進行修改,原對象不變,和深復(fù)制和淺復(fù)制有些類似。
df.sort_values('A', inplace=True) print("按A列排序:\n", df, '\n')
out:
按A列排序:
A B C D brand years
3 2 6 12 18 C 1
4 5 8 18 14 C++ 1
9 10 4 8 6 Python 4
2 16 10 2 12 Java 30
5 20 12 8 6 C# 30
缺失值:
含有nan值的數(shù)據(jù)排序:
data = { 'brand':['Python', 'C', 'C++', 'C#', 'Java'], 'B':[4,6,8,np.nan,10], 'A':[10,2,5,20,16], 'D':[6,18,14,6,12], 'years':[4,1,1,30,30], 'C':[8,12,18,8,2] } index = [9,3,4,5,2] df = pd.DataFrame(data=data, index = index) print("df數(shù)據(jù):\n", df, '\n')
out:
df數(shù)據(jù):
A B C D brand years
9 10 4.0 8 6 Python 4
3 2 6.0 12 18 C 1
4 5 8.0 18 14 C++ 1
5 20 NaN 8 6 C# 30
2 16 10.0 2 12 Java 30
B列含有nan值,對B列進行排序,缺失值排在最前面:
print("按B列排序:\n", df.sort_values('B', na_position='first'), '\n')
按B列排序:
A B C D brand years
5 20 NaN 8 6 C# 30
9 10 4.0 8 6 Python 4
3 2 6.0 12 18 C 1
4 5 8.0 18 14 C++ 1
2 16 10.0 2 12 Java 30
包含缺失值,缺失值排在最后:
print("按B列排序:\n", df.sort_values('B', na_position='last'), '\n')
out:
按B列排序:
A B C D brand years
9 10 4.0 8 6 Python 4
3 2 6.0 12 18 C 1
4 5 8.0 18 14 C++ 1
2 16 10.0 2 12 Java 30
5 20 NaN 8 6 C# 30
到此這篇關(guān)于python pandas 數(shù)據(jù)排序的幾種常用方法的文章就介紹到這了,更多相關(guān)python pandas內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python數(shù)據(jù)分析Pandas?Dataframe排序操作
- Pandas數(shù)值排序 sort_values()的使用
- pandas.DataFrame Series排序的使用(sort_values,sort_index)
- pandas中按行或列的值對數(shù)據(jù)排序的實現(xiàn)
- pandas?dataframe按照列名給列排序三種方法
- Python使用pandas實現(xiàn)對數(shù)據(jù)進行特定排序
- Python利用pandas對數(shù)據(jù)進行特定排序
- pandas中DataFrame排序及分組排序的實現(xiàn)示例
- pandas中數(shù)據(jù)的排序與排名的具體使用
- Pandas排序和分組排名(sort和rank)的實現(xiàn)
相關(guān)文章
正則化DropPath/drop_path用法示例(Python實現(xiàn))
DropPath 類似于Dropout,不同的是 Drop將深度學習模型中的多分支結(jié)構(gòu)隨機"失效",而Dropout是對神經(jīng)元隨機"失效"這篇文章主要給大家介紹了關(guān)于正則化DropPath/drop_path用法的相關(guān)資料,需要的朋友可以參考下2022-04-04Python+MediaPipe實現(xiàn)檢測人臉功能詳解
MediaPipe是用于構(gòu)建多模態(tài)(例如視頻、音頻或任何時間序列數(shù)據(jù))、跨平臺(即eAndroid、IOS、web、邊緣設(shè)備)應(yīng)用ML管道的框架。本文將利用MediaPipe實現(xiàn)檢測人臉功能,需要的可以參考一下2022-02-02python的pytest框架之命令行參數(shù)詳解(下)
這篇文章主要介紹了python的pytest框架之命令行參數(shù)詳解,今天將繼續(xù)更新其他一些命令選項的使用,和pytest收集測試用例的規(guī)則,需要的朋友可以參考下2019-06-06Python爬蟲實現(xiàn)獲取動態(tài)gif格式搞笑圖片的方法示例
這篇文章主要介紹了Python爬蟲實現(xiàn)獲取動態(tài)gif格式搞笑圖片的方法,結(jié)合實例形式分析了Python針對gif格式圖片的爬取、下載等相關(guān)操作技巧,需要的朋友可以參考下2018-12-12python結(jié)合selenium獲取XX省交通違章數(shù)據(jù)的實現(xiàn)思路及代碼
這篇文章主要介紹了python結(jié)合selenium獲取XX省交通違章數(shù)據(jù)的實現(xiàn)思路及代碼方法的相關(guān)資料2016-06-06把django中admin后臺界面的英文修改為中文顯示的方法
今天小編就為大家分享一篇把django中admin后臺界面的英文修改為中文顯示的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07