最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python CategoricalDtype自定義排序?qū)崿F(xiàn)原理解析

 更新時(shí)間:2020年09月11日 16:34:05   作者:秋天中的一片葉  
這篇文章主要介紹了Python CategoricalDtype自定義排序?qū)崿F(xiàn)原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

CategoricalDtype自定義排序

當(dāng)我們的透視表生成完畢后,有很多情況下需要我們對(duì)某列或某行值進(jìn)行排序。排序有很多種方法。例如sort_index及sort_values函數(shù)也可以對(duì)數(shù)據(jù)進(jìn)行排序,這里就不多說(shuō)了。

對(duì)于數(shù)值和字母的排序很容易,但是對(duì)于中文的排序就有點(diǎn)麻煩了。默認(rèn)情況下是按照utf-8的編碼來(lái)進(jìn)行排序的但是即使如此也很難滿足我們對(duì)漢字排序的要求。所以通過(guò)CategoricalDtye可以把數(shù)據(jù)類型轉(zhuǎn)成Category類型

然后通過(guò)指定參數(shù)列表的順序來(lái)自定義那個(gè)元素先那個(gè)元素后,完全取決于你把那個(gè)元素放在List的前面,這樣就大大方便了我們對(duì)中文排序的操作。

代碼如下:

1. 自動(dòng)生成DataFrame數(shù)據(jù)

#%%

import pandas as pd
from datetime import datetime

city =["上海","北京","深圳","杭州","蘇州","青島","大連","齊齊哈爾","大理","麗江",
     "天津","濟(jì)南","南京","廣州","無(wú)錫","連云港","張家界"]

#創(chuàng)建自動(dòng)從list中選取valuse值的get_list函數(shù)
#replace=True代表允許選出的元素重復(fù)
def get_list(items,size=20):
  return pd.Series(items).sample(n=size,replace=True).to_list()

#通過(guò)get_list自動(dòng)生成數(shù)據(jù),最終生成一個(gè)DataFrame
df = pd.DataFrame({
   "城市":get_list(city),
   "倉(cāng)位":get_list(["經(jīng)濟(jì)艙","商務(wù)艙","頭等艙"]),
   "航線":get_list(["單程","往返"]),
   "日期": get_list([datetime(2020,8,1),datetime(2020,8,2),
           datetime(2020,8,3),datetime(2020,8,4)]),
   "時(shí)間": get_list(["09:00 - 12:00",
            "13:00 - 15:30",
            "06:30 - 15:00",
            "18:00 - 21:00",
            "20:00 - 23:20",
            "10:00 - 15:00"]),
   "航空公司": get_list(["東方航空","南方航空","深圳航空","山東航空","中國(guó)航空"]),
   "出票數(shù)量":get_list([10,15,20,25,30,35,40,45,50,55,60]),
  })
#%%
df

結(jié)果如下:

2. 查看數(shù)據(jù)類型

#%%

df.dtypes

3. 自定義數(shù)據(jù)類型(Category)按照指定順序排序,并通過(guò)透視表展示數(shù)據(jù)

#%%
#自定義type,以及自定義排序的順序
my_type = pd.CategoricalDtype(
  categories=["頭等艙","商務(wù)艙","經(jīng)濟(jì)艙"],
  ordered=True
)
df["倉(cāng)位"] = df["倉(cāng)位"].astype(my_type) #將指定列轉(zhuǎn)成自定義的type
df.dtypes
#%%
#通過(guò)透視表統(tǒng)計(jì)數(shù)據(jù)
tb = pd.pivot_table(
  df,
  index=["城市","倉(cāng)位","航線","日期","時(shí)間"],
  values="出票數(shù)量",
  aggfunc=sum
)
tb

先查看數(shù)據(jù)類型:可以看出倉(cāng)位的數(shù)據(jù)類型已經(jīng)從Object變成了category類型了。

結(jié)果為:

分析上述數(shù)據(jù)可以看出,我們把倉(cāng)位按照["頭等艙","商務(wù)艙","經(jīng)濟(jì)艙"]的順序進(jìn)行了排序,排序結(jié)果也是按照這個(gè)順序排列的,成功的滿足了我們對(duì)中文列自定義排序的需求。

通過(guò)Pivot_table函數(shù)更加清晰的對(duì)原有數(shù)據(jù)進(jìn)行了展示。也可以按照自己的需求展示其中的一部分?jǐn)?shù)據(jù)。這樣對(duì)數(shù)據(jù)的清洗及展示變得更加的靈活。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • pyqt5中動(dòng)畫的使用詳解

    pyqt5中動(dòng)畫的使用詳解

    這篇文章主要介紹了pyqt5中動(dòng)畫的使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Python中的rjust()方法使用詳解

    Python中的rjust()方法使用詳解

    這篇文章主要介紹了Python中的rjust()方法使用詳解,是Python學(xué)習(xí)入門中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05
  • Python設(shè)計(jì)模式之裝飾模式實(shí)例詳解

    Python設(shè)計(jì)模式之裝飾模式實(shí)例詳解

    這篇文章主要介紹了Python設(shè)計(jì)模式之裝飾模式,結(jié)合實(shí)例形式詳細(xì)分析了裝飾模式的概念、原理并結(jié)合Python實(shí)例形式分析了裝飾模式的相關(guān)使用技巧,需要的朋友可以參考下
    2019-01-01
  • Django文件存儲(chǔ) 默認(rèn)存儲(chǔ)系統(tǒng)解析

    Django文件存儲(chǔ) 默認(rèn)存儲(chǔ)系統(tǒng)解析

    這篇文章主要介紹了Django文件存儲(chǔ) 默認(rèn)存儲(chǔ)系統(tǒng)解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Python信息抽取之亂碼解決辦法

    Python信息抽取之亂碼解決辦法

    這篇文章主要介紹了Python信息抽取之亂碼解決辦法的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • 在pycharm上mongodb配置及可視化設(shè)置方法

    在pycharm上mongodb配置及可視化設(shè)置方法

    今天小編就為大家分享一篇在pycharm上mongodb配置及可視化設(shè)置方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • 詳細(xì)聊聊為什么Python中0.2+0.1不等于0.3

    詳細(xì)聊聊為什么Python中0.2+0.1不等于0.3

    最近在學(xué)習(xí)過(guò)程中發(fā)現(xiàn)在計(jì)算機(jī)JS時(shí)發(fā)現(xiàn)了一個(gè)非常有意思事,0.1+0.2的結(jié)果不是0.3,而是0.30000000000000004,下面這篇文章主要給大家介紹了關(guān)于為什么Python中0.2+0.1不等于0.3的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • 通過(guò)python獲取甲流分布數(shù)據(jù)

    通過(guò)python獲取甲流分布數(shù)據(jù)

    近期,多地學(xué)校出現(xiàn)因甲流導(dǎo)致的班級(jí)停課,兒科甲流患者就診量呈數(shù)倍增長(zhǎng),今天我們同樣的操作來(lái)獲取下現(xiàn)在甲流感染的數(shù)據(jù),需要的朋友可以參考下
    2023-03-03
  • Django將默認(rèn)的SQLite更換為MySQL的實(shí)現(xiàn)

    Django將默認(rèn)的SQLite更換為MySQL的實(shí)現(xiàn)

    今天小編就為大家分享一篇Django將默認(rèn)的SQLite更換為MySQL的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • Django基礎(chǔ)三之視圖函數(shù)的使用方法

    Django基礎(chǔ)三之視圖函數(shù)的使用方法

    這篇文章主要介紹了Django基礎(chǔ)三之視圖函數(shù)的使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07

最新評(píng)論

北川| 杭锦旗| 朔州市| 大洼县| 武平县| 顺义区| 平乐县| 敦化市| 西青区| 宝丰县| 巩义市| 姚安县| 依安县| 三台县| 迁西县| 兴山县| 新乡市| 九龙坡区| 鞍山市| 东源县| 桃园市| 锦州市| 电白县| 左权县| 二连浩特市| 福州市| 金溪县| 叶城县| 玛沁县| 东城区| 克山县| 达拉特旗| 商河县| 定远县| 洪江市| 衡阳市| 横峰县| 武义县| 正蓝旗| 天津市| 武定县|