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

Pandas 多層索引操作的實現(xiàn)

 更新時間:2025年02月05日 10:35:18   作者:喜東東only  
本文主要介紹了Pandas 多層索引操作的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

Pandas 多層索引操作

多重索引的創(chuàng)建方式有很多,這里我們來看幾個常見的方式:

(1)pd.MultiIndex.from_arrays

df = pd.DataFrame(
    [[621,582,621,591],
     [615,585,616,597],
     [581,574,579,585],
     [596,565,584,561]])
# 數(shù)組
# 每個數(shù)組對應著一個層級的索引值
arrays = [['北京','北京','上海','上海'],['北大','清華','上交','復旦']]
mindex = pd.MultiIndex.from_arrays(arrays, names=['城市','大學'])
# 給df行索引賦值
df.index = mindex

在這里插入圖片描述

(2)pd.MultiIndex.from_frame

# dataframe
# 創(chuàng)建一個dataframe,方式與元組類似,每個元組對應一對多級索引值
frame = pd.DataFrame([('北京','北大'),('北京','清華'),('上海','上交'),('上海','復旦')])
mindex = pd.MultiIndex.from_frame(frame, names=['城市','大學'])
# 給df行索引賦值
df.index = mindex

在這里插入圖片描述

(3)pd.MultiIndex.from_tuples

df = pd.DataFrame(
    [[621,582,621,591],
     [615,585,616,597],
     [581,574,579,585],
     [596,565,584,561]])
# 元組
# 每個元組是對應著一對多級索引
tuples = [('北京','北大'),('北京','清華'),('上海','上交'),('上海','復旦')]
mindex = pd.MultiIndex.from_tuples(tuples, names=['城市','大學']) 
# 給df行索引賦值
df.index = mindex

在這里插入圖片描述

(4)pd.MultiIndex.from_product

當我們考慮迭代兩個對象的元素對時,可以優(yōu)先考慮使用pd.MultiIndex.from_product()來建立多重索引。

# product笛卡爾積

city = ['北京', '上海']
college = ['北大','清華','上交','復旦']
mindex1 = pd.MultiIndex.from_product([city,college], names=['城市','大學'])
mindex1

MultiIndex(levels=[['上海', '北京'], ['上交', '北大', '復旦', '清華']],
           codes=[[1, 1, 1, 1, 0, 0, 0, 0], [1, 3, 0, 2, 1, 3, 0, 2]],
           names=['城市', '大學'])

對兩個序列生成笛卡爾積,即兩兩組合,結(jié)果如上。這種方式生成的索引和我們上面想要的形式不同,因此對行索引不適用

# product生成column列索引
year = ['2022','2023']
pro = ['計算機','土木']
mcol = pd.MultiIndex.from_product([year,pro], names=['年份','專業(yè)'])
 
# 對df的行索引、列索引賦值
df.index = mindex
df.columns = mcol
display(df)

在這里插入圖片描述

np.r_[]用法:

np.r_[]函數(shù)是用于連接數(shù)組的函數(shù),類似于concatenate函數(shù),但可以在一維數(shù)組和多維數(shù)組之間進行拼接。具體用法如下:

使用np.r_[a, b]將兩個數(shù)組a和b按行連接(在行方向上進行拼接)。
使用np.r_[a, b]對多個數(shù)組進行按行連接,可以同時連接多個數(shù)組。
使用np.r_[(a, b), (c, d)]將兩個二維數(shù)組a和b按行連接,并將結(jié)果與二維數(shù)組c和d按行連接,最終得到一個拼接后的二維數(shù)組。
np.r_還支持切片操作,如np.r_[:5, 7:10]表示將索引為0到4的元素和索引為7到9的元素按行連接。
總而言之,np.r_[]函數(shù)可以在行方向上將多個數(shù)組或切片進行連接,生成一個新的數(shù)組。

讀取excel方式

def index_info():
    address =os.path.join('.','index_def.xlsx')
    criterion = pd.read_excel(address)
    multi_idx1=criterion['分類'].unique()
    multi_idx2=criterion['二級分類'].unique()
    
    idx1 = [multi_idx1[0]]*3+[multi_idx1[2]]*3+[multi_idx1[3]]*16
    idx2 = [multi_idx2[0]]*3+['-']*3+[multi_idx2[2]]*6+[multi_idx2[3]]*6+[multi_idx2[4]]*4

    criterion.index=pd.MultiIndex.from_arrays([idx1,idx2,criterion.index+1],names=['一級分類','二級分類','編號'])
    ctr_df = criterion.iloc[:,np.r_[3,5]].fillna('-')
    return ctr_df
ctr_df = index_info()
ctr_df

到此這篇關于Pandas 多層索引操作的實現(xiàn)的文章就介紹到這了,更多相關Pandas 多層索引內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家! 

相關文章

最新評論

甘洛县| 嘉义县| 隆回县| 佛坪县| 桐城市| 安溪县| 宜昌市| 湖州市| 新竹县| 福贡县| 巴楚县| 高陵县| 新泰市| 岗巴县| 成武县| 三江| 成都市| 美姑县| 太仆寺旗| 铜陵市| 水城县| 雅安市| 灵武市| 盱眙县| 靖州| 尚义县| 泗洪县| 海原县| 镇原县| 涡阳县| 呼伦贝尔市| 恩平市| 特克斯县| 洮南市| 中卫市| 天门市| 仁寿县| 宝兴县| 峡江县| 互助| 民丰县|