91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python CategoricalDtype自定義排序實現原理解析

發布時間:2020-10-03 06:34:09 來源:腳本之家 閱讀:271 作者:秋天中的一片葉 欄目:開發技術

CategoricalDtype自定義排序

當我們的透視表生成完畢后,有很多情況下需要我們對某列或某行值進行排序。排序有很多種方法。例如sort_index及sort_values函數也可以對數據進行排序,這里就不多說了。

對于數值和字母的排序很容易,但是對于中文的排序就有點麻煩了。默認情況下是按照utf-8的編碼來進行排序的但是即使如此也很難滿足我們對漢字排序的要求。所以通過CategoricalDtye可以把數據類型轉成Category類型

然后通過指定參數列表的順序來自定義那個元素先那個元素后,完全取決于你把那個元素放在List的前面,這樣就大大方便了我們對中文排序的操作。

代碼如下:

1. 自動生成DataFrame數據

#%%

import pandas as pd
from datetime import datetime

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

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

#通過get_list自動生成數據,最終生成一個DataFrame
df = pd.DataFrame({
   "城市":get_list(city),
   "倉位":get_list(["經濟艙","商務艙","頭等艙"]),
   "航線":get_list(["單程","往返"]),
   "日期": get_list([datetime(2020,8,1),datetime(2020,8,2),
           datetime(2020,8,3),datetime(2020,8,4)]),
   "時間": 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(["東方航空","南方航空","深圳航空","山東航空","中國航空"]),
   "出票數量":get_list([10,15,20,25,30,35,40,45,50,55,60]),
  })
#%%
df

結果如下:

Python CategoricalDtype自定義排序實現原理解析

2. 查看數據類型

#%%

df.dtypes

Python CategoricalDtype自定義排序實現原理解析

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

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

先查看數據類型:可以看出倉位的數據類型已經從Object變成了category類型了。

Python CategoricalDtype自定義排序實現原理解析

結果為:

Python CategoricalDtype自定義排序實現原理解析

分析上述數據可以看出,我們把倉位按照["頭等艙","商務艙","經濟艙"]的順序進行了排序,排序結果也是按照這個順序排列的,成功的滿足了我們對中文列自定義排序的需求。

通過Pivot_table函數更加清晰的對原有數據進行了展示。也可以按照自己的需求展示其中的一部分數據。這樣對數據的清洗及展示變得更加的靈活。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

郸城县| 宁南县| 定安县| 呼伦贝尔市| 贵定县| 周至县| 镇康县| 彭州市| 抚顺市| 师宗县| 拜泉县| 米林县| 福州市| 凌海市| 莱州市| 军事| 龙岩市| 博乐市| 湘潭县| 龙陵县| 准格尔旗| 安阳县| 平塘县| 中宁县| 恭城| 通河县| 梁山县| 新宁县| 淅川县| 舞钢市| 成武县| 巨鹿县| 邯郸县| 广安市| 南康市| 石柱| 栾川县| 龙泉市| 大庆市| 三都| 富锦市|