99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀一文搞懂Pandas數(shù)據(jù)排序
一文搞懂Pandas數(shù)據(jù)排序
2021-08-13
收藏

來源:AI入門學(xué)習(xí)

作者:小伍哥

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

Series排序

DataFrame排序

一、Series的排序

1、sort_index 索引排序

定義一個(gè)Series用于實(shí)驗(yàn)

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

Series索引進(jìn)行升序排序,默認(rèn)即可,無需使用其他參數(shù)

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

Series索引進(jìn)行降序排序,使用ascending=False參數(shù)

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

2、sort_values 值引排序

用 法:

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

參數(shù):

  • ascending:默認(rèn)為True升序排列,為Flase降序排序
  • inplace:是否修改原始的Series

Series的值進(jìn)行升序排序,默認(rèn)即可,無需使用其他參數(shù)

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

Series進(jìn)行降序排序,使用ascending=False參數(shù)

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:按照某一列或幾列數(shù)據(jù)進(jìn)行排序,但是by參數(shù)貌似不建議使用
  • axis:0按照行名排序;1按照列名排序
  • level:默認(rèn)None,否則按照給定的level順序排列---貌似并不是,文檔
  • ascending:默認(rèn)True升序排列;False降序排列
  • inplace:默認(rèn)False,否則排序之后的數(shù)據(jù)直接替換原來的數(shù)據(jù)框
  • kind:排序方法,{‘quicksort’, ‘mergesort’, ‘heapsort’}, default ‘quicksort’。似乎不用太關(guān)心。
  • na_position:缺失值默認(rèn)排在最后{"first","last"}

構(gòu)建數(shù)據(jù)集

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"]) data col_a  col_c  col_b 0 0 1 2 2 3 4 5 1 6 7 8

按行的索引升序進(jìn)行排序,默認(rèn)按行,升序

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

按行的索引降序進(jìn)行排序

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

按列升序的索引進(jìn)行排序

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')

參 數(shù):

  • by:字符串或者List<字符串>;如果axis=0,那么by="列名";如果axis=1,那么by="行名"。
  • axis:{0 or ‘index’, 1 or ‘columns’}, default 0,默認(rèn)按照列排序,即縱向排序;如果為1,則是橫向排序。
  • ascending:布爾型,True則升序,如果by=['列名1','列名2'],則該參數(shù)可以是[True, False],即第一字段升序,第二個(gè)降序。
  • inplace布爾型,是否用排序后的數(shù)據(jù)框替換現(xiàn)有的數(shù)據(jù)框。
  • kind:排序方法,{‘quicksort’, ‘mergesort’, ‘heapsort’}, default ‘quicksort’。似乎不用太關(guān)心。
  • na_position:{‘first’, ‘last’}, default ‘last’,默認(rèn)缺失值排在最后面。

構(gòu)建實(shí)驗(yàn)用數(shù)據(jù)

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

按指定列的值大小順序進(jìn)行排序

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

按多列進(jìn)行排序

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

數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }