欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

Pandas 多層索引操作

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

(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ù)組
# 每個(gè)數(shù)組對(duì)應(yīng)著一個(gè)層級(jí)的索引值
arrays = [['北京','北京','上海','上海'],['北大','清華','上交','復(fù)旦']]
mindex = pd.MultiIndex.from_arrays(arrays, names=['城市','大學(xué)'])
# 給df行索引賦值
df.index = mindex

在這里插入圖片描述

(2)pd.MultiIndex.from_frame

# dataframe
# 創(chuàng)建一個(gè)dataframe,方式與元組類似,每個(gè)元組對(duì)應(yīng)一對(duì)多級(jí)索引值
frame = pd.DataFrame([('北京','北大'),('北京','清華'),('上海','上交'),('上海','復(fù)旦')])
mindex = pd.MultiIndex.from_frame(frame, names=['城市','大學(xué)'])
# 給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]])
# 元組
# 每個(gè)元組是對(duì)應(yīng)著一對(duì)多級(jí)索引
tuples = [('北京','北大'),('北京','清華'),('上海','上交'),('上海','復(fù)旦')]
mindex = pd.MultiIndex.from_tuples(tuples, names=['城市','大學(xué)']) 
# 給df行索引賦值
df.index = mindex

在這里插入圖片描述

(4)pd.MultiIndex.from_product

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

# product笛卡爾積

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

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

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

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

在這里插入圖片描述

np.r_[]用法:

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

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

讀取excel方式

def index_info():
    address =os.path.join('.','index_def.xlsx')
    criterion = pd.read_excel(address)
    multi_idx1=criterion['分類'].unique()
    multi_idx2=criterion['二級(jí)分類'].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=['一級(jí)分類','二級(jí)分類','編號(hào)'])
    ctr_df = criterion.iloc[:,np.r_[3,5]].fillna('-')
    return ctr_df
ctr_df = index_info()
ctr_df

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

相關(guān)文章

  • 在Python中使用MySQL--PyMySQL的基本使用方法

    在Python中使用MySQL--PyMySQL的基本使用方法

    PyMySQL 是在 Python3.x 版本中用于連接 MySQL 服務(wù)器的一個(gè)庫,Python2中則使用mysqldb。這篇文章主要介紹了在Python中使用MySQL--PyMySQL的基本使用,需要的朋友可以參考下
    2019-11-11
  • pycharm 關(guān)閉search everywhere的解決操作

    pycharm 關(guān)閉search everywhere的解決操作

    這篇文章主要介紹了pycharm 關(guān)閉search everywhere的解決操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • 利用setuptools打包python程序的方法步驟

    利用setuptools打包python程序的方法步驟

    這篇文章主要介紹了利用setuptools打包python程序的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • python?selenium模擬點(diǎn)擊問題解決方案

    python?selenium模擬點(diǎn)擊問題解決方案

    這篇文章主要介紹了python?selenium模擬點(diǎn)擊問題,涉及到安裝谷歌瀏覽器和瀏覽器驅(qū)動(dòng)的相關(guān)知識(shí)介紹,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • Python?sklearn庫三種常用編碼格式實(shí)例

    Python?sklearn庫三種常用編碼格式實(shí)例

    這篇文章主要為大家介紹了Python?sklearn庫三種常用編碼格式實(shí)例展示,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • 關(guān)于數(shù)據(jù)分析Pandas的Series用法總結(jié)

    關(guān)于數(shù)據(jù)分析Pandas的Series用法總結(jié)

    這篇文章主要介紹了關(guān)于數(shù)據(jù)分析Pandas的Series用法總結(jié),Series序列,是一種一維的結(jié)構(gòu),類似于一維列表和ndarray中的一維數(shù)組,但是功能比他們要更為強(qiáng)大,Series由兩部分組成:索引index和數(shù)值values,本篇對(duì)其用法做出總結(jié)
    2023-07-07
  • python 實(shí)現(xiàn)打印掃描效果詳情

    python 實(shí)現(xiàn)打印掃描效果詳情

    這篇文章主要介紹了python 實(shí)現(xiàn)打印掃描效果詳情,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08
  • python?判斷字符串當(dāng)中是否包含字符(str.contain)

    python?判斷字符串當(dāng)中是否包含字符(str.contain)

    這篇文章主要介紹了python?判斷字符串當(dāng)中是否包含字符(str.contain),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • Python實(shí)現(xiàn)個(gè)人微信號(hào)自動(dòng)監(jiān)控告警的示例

    Python實(shí)現(xiàn)個(gè)人微信號(hào)自動(dòng)監(jiān)控告警的示例

    今天小編就為大家分享一篇Python實(shí)現(xiàn)個(gè)人微信號(hào)自動(dòng)監(jiān)控告警的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • 使用pyqt 實(shí)現(xiàn)重復(fù)打開多個(gè)相同界面

    使用pyqt 實(shí)現(xiàn)重復(fù)打開多個(gè)相同界面

    今天小編就為大家分享一篇使用pyqt 實(shí)現(xiàn)重復(fù)打開多個(gè)相同界面,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12

最新評(píng)論