日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【Python】一文搞懂Pandas数据排序

發布時間:2025/3/12 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python】一文搞懂Pandas数据排序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數據排序,是使用非常高頻的功能,Pandas排序支持做的非常好,主要涉及兩個函數,兩種數據類型,組合起來四種情況。

Series排序

  • Series.sort_index 索引排序

  • Series.sort_values 值引排序

DataFrame排序

  • DataFrame.sort_index ?索引排序

  • DataFrame.sort_values 值引排序

?

一、Series的排序

1、sort_index 索引排序

定義一個Series用于實驗

s = Series([4,1,2,3],index=['d','a','c','b']) d 4 a 1 c 2 b 3

?

對Series的索引進行升序排序,默認即可,無需使用其他參數

s.sort_index() a 1 b 3 c 2 d 4

?

對Series的索引進行降序排序,使用ascending=False參數

s.sort_index(ascending=False) d 4 c 2 b 3 a 1

?

2、sort_values 值引排序

用 法:

Series.sort_values(ascending=True, inplace=Flase)

參數:

  • ascending:默認為True升序排列,為Flase降序排序

  • inplace:是否修改原始的Series

?

對Series的值進行升序排序,默認即可,無需使用其他參數

s.sort_values() a 1 c 2 b 3 d 4

?

對Series的進行降序排序,使用ascending=False參數

s.sort_values(ascending=False) d 4 b 3 c 2 a 1

?

?

?

二、 DataFrame的排序

?

1、sort_index 索引排序

DataFrame.sort_index(by=None, axis=0, level=None, ascending=True, inplace=False, kind='quicksort', na_position='last', sort_remaining=True)
  • by:按照某一列或幾列數據進行排序,但是by參數貌似不建議使用

  • axis:0按照行名排序;1按照列名排序

  • level:默認None,否則按照給定的level順序排列---貌似并不是,文檔

  • ascending:默認True升序排列;False降序排列

  • inplace:默認False,否則排序之后的數據直接替換原來的數據框

  • kind:排序方法,{‘quicksort’, ‘mergesort’, ‘heapsort’}, default ‘quicksort’。似乎不用太關心。

  • na_position:缺失值默認排在最后{"first","last"}

?

構建數據集

import numpy as np import pandas as pd data = pd.DataFrame( np.arange(9).reshape(3,3),index = ["0","2","1"],columns = ["col_a","col_c","col_b"]) datacol_a col_c col_b 0 0 1 2 2 3 4 5 1 6 7 8

?

按行的索引升序進行排序,默認按行,升序

data.sort_index()col_a col_c col_b 0 0 1 2 1 6 7 8 2 3 4 5

?

按行的索引降序進行排序

data.sort_index(ascending=False)col_a col_c col_b 2 3 4 5 1 6 7 8 0 0 1 2

?

按列升序的索引進行排序

data.sort_index(axis=1) Out[10]: col_a col_c col_b 0 0 1 2 1 6 7 8 2 3 4 5

?

?

2、sort_values 值引排序

?

用 法:

DataFrame.sort_values( by, axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last')

參 數:

  • by:字符串或者List<字符串>;如果axis=0,那么by="列名";如果axis=1,那么by="行名"。

  • axis:{0 or ‘index’, 1 or ‘columns’}, default 0,默認按照列排序,即縱向排序;如果為1,則是橫向排序。

  • ascending:布爾型,True則升序,如果by=['列名1','列名2'],則該參數可以是[True, False],即第一字段升序,第二個降序。

  • inplace布爾型,是否用排序后的數據框替換現有的數據框。

  • kind:排序方法,{‘quicksort’, ‘mergesort’, ‘heapsort’}, default ‘quicksort’。似乎不用太關心。

  • na_position:{‘first’, ‘last’}, default ‘last’,默認缺失值排在最后面。

?

構建實驗用數據

data =pd.DataFrame([[2,3,12],[6,2,8],[9,5,7]], index=["0", "2", "1"], columns=["col_a", "col_c", "col_b"])col_a col_c col_b 0 2 3 12 2 6 2 8 1 9 5 7

?

按指定列的值大小順序進行排序

data.sort_values(by='col_c')col_a col_c col_b 2 6 2 8 0 2 3 12 1 9 5 7

?

按多列進行排序

data.sort_values(by=['col_b','col_a'])col_a col_c col_b 1 9 5 7 2 6 2 8 0 2 3 12

?

先按col_b列降序,再按col_a列升序排序

data.sort_values(by=['col_b','col_a'],axis=0,ascending=[False,True]) col_a col_c col_b 0 2 3 12 2 6 2 8 1 9 5 7

升序排列

data.sort_values(by='2',axis=1) col_c col_a col_b 0 3 2 12 2 2 6 8 1 5 9 7

?

2行 升序,0行降排列

data.sort_values(by=['2','0'],axis=1) col_c col_a col_b 0 3 2 12 2 2 6 8 1 5 9 7

?

往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯黃海廣老師《機器學習課程》課件合集 本站qq群851320808,加入微信群請掃碼:

總結

以上是生活随笔為你收集整理的【Python】一文搞懂Pandas数据排序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。