MySQL數(shù)據(jù)優(yōu)化-多層索引
一、多層索引
1.創(chuàng)建
環(huán)境:Jupyter
import numpy as np import pandas as pd a=pd.DataFrame(np.random.random(size=(4,4)),index=[['上半年','上半年','下半年','下半年'], ['一季度','二季度','三季度','四季度']], columns=[['蔬菜','蔬菜','肉類','肉類'],['胡蘿卜','白菜','牛肉','豬肉']]) display(a)
2.設(shè)置索引的名稱
import numpy as np import pandas as pd a=pd.DataFrame(np.random.random(size=(4,4)),index=[['上半年','上半年','下半年','下半年'], ['一季度','二季度','三季度','四季度']], columns=[['蔬菜','蔬菜','肉類','肉類'],['胡蘿卜','白菜','牛肉','豬肉']]) a.index.names=['年度','季度'] a.columns.names=['大類','小類'] display(a)
3.from_arrays( )-from_tuples()
import numpy as np import pandas as pd index=pd.MultiIndex.from_arrays([['上半年','上半年','下半年','下半年'],['一季度','二季度','三季度','四季度']]) columns=pd.MultiIndex.from_tuples([('蔬菜','胡蘿卜'),('蔬菜','白菜'),('肉類','牛肉'),('肉類','豬肉')]) a=pd.DataFrame(np.random.random(size=(4,4)),index=index,columns=columns) display(a)
4.笛卡兒積方式
from_product() 局限性較大
import pandas as pd index = pd.MultiIndex.from_product([['上半年','下半年'],['蔬菜','肉類']]) a=pd.DataFrame(np.random.random(size=(4,4)),index=index) display(a)
二、多層索引操作
1.Series
import pandas as pd a=pd.Series([1,2,3,4],index=[['a','a','b','b'],['c','d','e','f']]) print(a) print('---------------------') print(a.loc['a']) print('---------------------') print(a.loc['a','c'])
import pandas as pd a=pd.Series([1,2,3,4],index=[['a','a','b','b'],['c','d','e','f']]) print(a) print('---------------------') print(a.iloc[0]) print('---------------------') print(a.loc['a':'b']) print('---------------------') print(a.iloc[0:2])
2.DataFrame
import numpy as np import pandas as pd a=pd.DataFrame(np.random.random(size=(4,4)),index=[['上半年','上半年','下半年','下半年'], ['一季度','二季度','三季度','四季度']], columns=[['蔬菜','蔬菜','肉類','肉類'],['胡蘿卜','白菜','牛肉','豬肉']]) print(a) print('--------------------') print(a.loc['上半年','二季度']) print('--------------------') print(a.iloc[0])
3.交換索引
swaplevel( )
import numpy as np import pandas as pd a=pd.DataFrame(np.random.random(size=(4,4)),index=[['2021','2021','2022','2022'], ['一季度','二季度','三季度','四季度']], columns=[['蔬菜','蔬菜','肉類','肉類'],['胡蘿卜','白菜','牛肉','豬肉']]) a.index.names=['年度','季度'] print(a) print('--------------------') print(a.swaplevel('年度','季度'))
4.索引排序
sort_index( )
level
:指定根據(jù)哪一層進(jìn)行排序,默認(rèn)為最層inplace
:是否修改原數(shù)據(jù)。默認(rèn)為False
import numpy as np import pandas as pd a=pd.DataFrame(np.random.random(size=(4,4)),index=[['2021','2021','2022','2022'], [1,3,2,4]], columns=[['蔬菜','蔬菜','肉類','肉類'],['胡蘿卜','白菜','牛肉','豬肉']]) a.index.names=['年度','季度'] print(a) print('--------------------') print(a.sort_index()) print('--------------------') print(a.sort_index(level=1))
5.索引堆疊
stack( )
將指定層級(jí)的列轉(zhuǎn)換成行
import numpy as np import pandas as pd a=pd.DataFrame(np.random.random(size=(4,4)),index=[['2021','2021','2022','2022'], [1,3,2,4]], columns=[['蔬菜','蔬菜','肉類','肉類'],['胡蘿卜','胡蘿卜','牛肉','牛肉']]) print(a) print('--------------------') print(a.stack(0)) print('--------------------') print(a.stack(-1))
6.取消堆疊
unstack( )
將指定層級(jí)的行轉(zhuǎn)換成列
fill_value
:指定填充值。
import numpy as np import pandas as pd a=pd.DataFrame(np.random.random(size=(4,4)),index=[['2021','2021','2022','2022'], [1,3,2,4]], columns=[['蔬菜','蔬菜','肉類','肉類'],['胡蘿卜','胡蘿卜','牛肉','牛肉']]) print(a) print('--------------------') a=a.stack(0) print(a) print('--------------------') print(a.unstack(-1))
import numpy as np import pandas as pd a=pd.DataFrame(np.random.random(size=(4,4)),index=[['2021','2021','2022','2022'], [1,3,2,4]], columns=[['蔬菜','蔬菜','肉類','肉類'],['胡蘿卜','胡蘿卜','牛肉','牛肉']]) print(a) print('--------------------') a=a.stack(0) print(a) print('--------------------') print(a.unstack(0,fill_value='0'))
到此這篇關(guān)于MySQL數(shù)據(jù)優(yōu)化-多層索引的文章就介紹到這了,更多相關(guān)數(shù)據(jù)優(yōu)化-多層索引內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL數(shù)據(jù)庫服務(wù)器端核心參數(shù)詳解和推薦配置
MySQL手冊(cè)上也有服務(wù)器端參數(shù)的解釋,以及參數(shù)值的相關(guān)說明信息,現(xiàn)針對(duì)我們大家重點(diǎn)需要注意、需要修改或影響性能 的服務(wù)器端參數(shù),作其用處的解釋和如何配置參數(shù)值的推薦,此事情拖了不少時(shí)間,為方便大家?guī)兔m錯(cuò)2011-12-12MySQL中執(zhí)行計(jì)劃explain命令示例詳解
這篇文章主要給大家介紹了關(guān)于MySQL中執(zhí)行計(jì)劃explain命令的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用explain命令具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面說來一起學(xué)習(xí)學(xué)習(xí)吧2018-05-05MySQL存儲(chǔ)過程的權(quán)限問題小結(jié)
這篇文章主要介紹了MySQL存儲(chǔ)過程的權(quán)限問題小結(jié)及mysql 創(chuàng)建存儲(chǔ)過程權(quán)限問題,感興趣的朋友一起看看吧2018-04-04MySQL 外鍵約束和表關(guān)系相關(guān)總結(jié)
一個(gè)項(xiàng)目中如果將所有的數(shù)據(jù)都存放在一張表中是不合理的,比如一個(gè)員工信息,公司只有2個(gè)部門,但是員工有1億人,就意味著員工信息這張表中的部門字段的值需要重復(fù)存儲(chǔ),極大的浪費(fèi)資源,因此可以定義一個(gè)部門表和員工信息表進(jìn)行關(guān)聯(lián),而關(guān)聯(lián)的方式就是外鍵。2021-06-06