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( )
將指定層級的列轉(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( )
將指定層級的行轉(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL數(shù)據(jù)庫服務(wù)器端核心參數(shù)詳解和推薦配置
MySQL手冊上也有服務(wù)器端參數(shù)的解釋,以及參數(shù)值的相關(guān)說明信息,現(xiàn)針對我們大家重點需要注意、需要修改或影響性能 的服務(wù)器端參數(shù),作其用處的解釋和如何配置參數(shù)值的推薦,此事情拖了不少時間,為方便大家?guī)兔m錯2011-12-12
MySQL 外鍵約束和表關(guān)系相關(guān)總結(jié)
一個項目中如果將所有的數(shù)據(jù)都存放在一張表中是不合理的,比如一個員工信息,公司只有2個部門,但是員工有1億人,就意味著員工信息這張表中的部門字段的值需要重復(fù)存儲,極大的浪費(fèi)資源,因此可以定義一個部門表和員工信息表進(jìn)行關(guān)聯(lián),而關(guān)聯(lián)的方式就是外鍵。2021-06-06

