【python】通過Mutilindex生成二維表資料
阿新 • • 發佈:2020-08-05
一,Mutilindex
MultiIndex表示多級索引,它是從Index繼承過來的,其中多級標籤用元組物件來表示。
1. 建立get_list自定義函式
作用:通過size引數傳入獲取值的個數。items則是列表中的所有元素。sample函式會自動在列表範圍內隨機選取資料。replace=False代表選取出來的資料唯一。replace=True代表選取出來的資料允許重複。
import pandas as pd from datetime import datetime #replace引數為True允許元素重複,為False則元素不重複 def get_list(items,size=10):return pd.Series(items).sample(n=size,replace=False).to_list() city =["上海","北京","深圳","杭州","蘇州","青島","大連","齊齊哈爾","大理","麗江", "天津","濟南","南京","廣州","無錫","連雲港","張家界"] get_list(city)
2. 通過自定義函式生成DataFrame資料
註釋:DataFrame中的資料建立時通過dict字典來建立的。key為二維表格中的列名,values則為通過get_list函式生成的資料。
#通過函式建立DataFrame物件def get_list(items,size=20): return pd.Series(items).sample(n=size,replace=True).to_list() 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 #%%
3. 通過Pivot_table 透視表對二維表格進行資料統計
註釋:可以通過pivot_table函式把生成的二維表格作為引數傳入,並對其指定index,columns,values及統計資料相關的函式(aggfunc=sum)。這樣可以對資料進行進一步的過濾跟統計,達成我們的需求。
#%% #可以根據資料隨意指定行列,統計資料 def get_list(items,size=1000): return pd.Series(items).sample(n=size,replace=True).to_list() 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]), }) #通過pivot_table(t透視表)方法統計資料,日常資料統計中非常常用。 df01 = pd.pivot_table( df, index= ["城市","日期"], columns= ["航空公司","航線"], values= "出票數量", aggfunc= sum, ) #將NaN的值全部轉成0 df01 = df01.fillna(0) df01 #%%
4. 將建立及統計好的資料儲存到Excel中
df01.to_excel(R"C:\Users\Administrator\PycharmProjects\python_Basic\Pandas_to_Excel\20200804\datas\output_data1.xlsx", ) print("Done!!")