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

pandas中DataFrame多層索引的實(shí)現(xiàn)

 更新時(shí)間:2024年12月31日 09:54:34   作者:m0_62172798  
本文主要介紹了pandas中DataFrame多層索引的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

1、創(chuàng)建

相較于一層索引,在創(chuàng)建多層索引時(shí)給字段添加關(guān)系,其創(chuàng)建方法包括運(yùn)用元組、數(shù)組、笛卡爾積,在普通DataFrame中創(chuàng)立。

 1.1方式一使用pd.MultiIndex.from_tuples創(chuàng)建索引

tuples為元組 含義就是使用pandas中用元組建立多層索引

import pandas as pd
import numpy as np

#這里創(chuàng)建的兩層索引,姓名、考試
index_lables=[('張三','期中'),('張三','期末'),('李四','期中'),('李四','期末')]

mult_index = pd.MultiIndex.from_tuples(index_lables,names=('name','exam'))

data = {
    'python':[98,149,130,147],
    'math':[95,78,143,104]
}
df=pd.DataFrame(data,index=mult_index)

1.2方式二:使用pd.MultiIndex.from_arrays(數(shù)組)

index_labels = [['張三','張三','李四','李四'],['期中','期末','期中','期末']]

mult_index=pd.MultiIndex.from_arrays(index_labels,names=('name','exam'))
df=pd.DataFrame(data,index=mult_index)

1.3方式三:使用pd.MultiIndex.from_product(笛卡爾積)

index_lables=pd.MultiIndex.from_product([['張三','李四','王五','趙六'],
                                        ['期中','期末']],
                                        names=['name','exam'])
df=pd.DataFrame(np.random.randint(80,150, size=(8,2)),
                index=index_lables,
                columns=['python','math']
                )

df1=pd.DataFrame(np.random.randint(80,150,size=(2,4)),
                 index=['張三','李四'],
                 columns=pd.MultiIndex.from_product([['python','math'],['期中','期末']]))

笛卡爾積使用的不同其創(chuàng)建的dataframe也不同

df1

df

1.4方式四在已有的DataFrame基礎(chǔ)上創(chuàng)建

使用set_index方法進(jìn)行創(chuàng)建

參數(shù)

keys,要設(shè)置為索引的列名(如有多個(gè)應(yīng)放在一個(gè)列表里)

drop: bool = True,將設(shè)置為索引的列刪除,默認(rèn)為T(mén)rue

append: bool = False,是否將新的索引追加到原索引后(即是否保留原索引),默認(rèn)為False

inplace: bool = False, 是否在原DataFrame上修改,默認(rèn)為False

verify_integrity: bool = False,是否檢查索引有無(wú)重復(fù),默認(rèn)為False

 示例:

import pandas as pd
import numpy as np

data={
    'year':[2020,2020,2021,2021,2022,2022],
    'quarter':[1,2,1,2,1,2],
    'sales':[100,150,120,130,140,180],
    'profit':[50,80,80,100,30,80]
}
df=pd.DataFrame(data)
print(df)
df.set_index(['year','quarter'],inplace=True)
print(df)

2、篩選數(shù)據(jù)

多層索引的DataFrame的index(每一行的下標(biāo))為元組

print(df.index)

在篩選數(shù)據(jù)時(shí),與普通的DataFrame一致,可以通過(guò)標(biāo)簽、位置、字段名、切片進(jìn)行篩選

根據(jù)標(biāo)簽索引

print(df.loc[[2020,2021]])
print(df.loc[(2020,1)])#與df.loc[2020].loc[1]一致
print(df.loc[[(2020,1),(2020,2)]])
print(df.loc[(2020,1):(2021,2)])

 根據(jù)位置索引

print(df.iloc[[0,1]])
print(df.iloc[0:4,[0]])#如果‘,'的0不加[],則該列為series

3、分層計(jì)算

 之前DataFrame的統(tǒng)計(jì)函數(shù)有l(wèi)evel參數(shù),能夠給多層索引DataFrame運(yùn)用,但已被舍棄,現(xiàn)在想要運(yùn)算需要使用:DataFrame.groupby(level=層數(shù)).函數(shù)名()

我們以例子進(jìn)行說(shuō)明:(這個(gè)輸出的DataFrame有點(diǎn)丑,別介意)

import pandas as pd
import numpy as np

df=pd.DataFrame(np.random.randint(0,151,size=(40,3)),
                index=pd.MultiIndex.from_product([ list('ABCDEFGHIJ'),['期中','期末'],['平時(shí)成績(jī)','考試成績(jī)']]),
                columns=['math','python','english']
                )
print(df)

 我們先來(lái)看層級(jí),最左邊的標(biāo)簽為字母,然后是“期中/期末”,最后是成績(jī)類(lèi)別,所以對(duì)應(yīng)的層數(shù)為0,1,2。弄清楚之后,我們使用代碼看看運(yùn)算結(jié)果。

print(df.groupby(level=0).mean())
print(df.groupby(level=1).mean())
print(df.groupby(level=2).mean())

level=1

level=1

level=2|level=3

 可以看出,level=0時(shí),根據(jù)每個(gè)同學(xué)的其他4項(xiàng)計(jì)算各科平均分,level=1時(shí),計(jì)算期中期末的平均分。

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

相關(guān)文章

  • 從基礎(chǔ)到進(jìn)階詳解Python字符串統(tǒng)計(jì)的實(shí)用指南

    從基礎(chǔ)到進(jìn)階詳解Python字符串統(tǒng)計(jì)的實(shí)用指南

    字符串處理是編程中最基礎(chǔ)也最常見(jiàn)的任務(wù)之一,本文將用通俗易懂的方式,帶你全面了解如何用Python實(shí)現(xiàn)字符串統(tǒng)計(jì),涵蓋從最基礎(chǔ)的計(jì)數(shù)到高級(jí)的文本分析技巧,感興趣的小伙伴可以了解下
    2025-11-11
  • Python日志模塊logging的使用方法總結(jié)

    Python日志模塊logging的使用方法總結(jié)

    這篇文章主要分享的是Python日志模塊logging的使用方法總結(jié),ogging模塊默認(rèn)級(jí)別是WARNING,意味著只會(huì)追蹤該級(jí)別以上的事件,除非更改日志配置,想了解更多相關(guān)資料的小伙伴可以參考下面文章內(nèi)容
    2022-05-05
  • python super用法及原理詳解

    python super用法及原理詳解

    這篇文章主要介紹了python super用法及原理詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • Python使用統(tǒng)計(jì)函數(shù)繪制簡(jiǎn)單圖形實(shí)例代碼

    Python使用統(tǒng)計(jì)函數(shù)繪制簡(jiǎn)單圖形實(shí)例代碼

    這篇文章主要給大家介紹了關(guān)于Python使用統(tǒng)計(jì)函數(shù)繪制簡(jiǎn)單圖形的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Python sys模塊中maxsize()方法教程示例

    Python sys模塊中maxsize()方法教程示例

    這篇文章主要為大家介紹了Python sys模塊中maxsize()方法教程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • Python實(shí)現(xiàn)遺傳算法(虛擬機(jī)中運(yùn)行)

    Python實(shí)現(xiàn)遺傳算法(虛擬機(jī)中運(yùn)行)

    遺傳算法(GA)是最早由美國(guó)Holland教授提出的一種基于自然界的“適者生存,優(yōu)勝劣汰”基本法則的智能搜索算法。本文主要介紹了如何通過(guò)Python實(shí)現(xiàn)遺傳算法,感興趣的同學(xué)可以看一看
    2021-11-11
  • 詳解Python之?dāng)?shù)據(jù)序列化(json、pickle、shelve)

    詳解Python之?dāng)?shù)據(jù)序列化(json、pickle、shelve)

    本篇文章主要介紹了Python之?dāng)?shù)據(jù)序列化,本節(jié)要介紹的就是Python內(nèi)置的幾個(gè)用于進(jìn)行數(shù)據(jù)序列化的模塊,有興趣的可以了解一下。
    2017-03-03
  • 淺談python socket函數(shù)中,send與sendall的區(qū)別與使用方法

    淺談python socket函數(shù)中,send與sendall的區(qū)別與使用方法

    下面小編就為大家?guī)?lái)一篇淺談python socket函數(shù)中,send與sendall的區(qū)別與使用方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • Python輸出\u編碼將其轉(zhuǎn)換成中文的實(shí)例

    Python輸出\u編碼將其轉(zhuǎn)換成中文的實(shí)例

    今天小編就為大家分享一篇Python輸出\u編碼將其轉(zhuǎn)換成中文的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • 如何使用python生成大量數(shù)據(jù)寫(xiě)入es數(shù)據(jù)庫(kù)并查詢(xún)操作

    如何使用python生成大量數(shù)據(jù)寫(xiě)入es數(shù)據(jù)庫(kù)并查詢(xún)操作

    這篇文章主要介紹了如何使用python生成大量數(shù)據(jù)寫(xiě)入es數(shù)據(jù)庫(kù)并查詢(xún)操作,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09

最新評(píng)論

永嘉县| 鹤峰县| 怀安县| 西安市| 图木舒克市| 凤山县| 康平县| 吉水县| 乌拉特后旗| 大宁县| 榆中县| 阿克陶县| 罗源县| 普洱| 云龙县| 浏阳市| 平江县| 高邑县| 郑州市| 阿勒泰市| 峡江县| 福泉市| 莲花县| 通化县| 梧州市| 岱山县| 商城县| 大洼县| 无为县| 海南省| 长岭县| 永丰县| 海丰县| 安泽县| 东宁县| 巩义市| 巴东县| 汝城县| 桓台县| 上杭县| 丽水市|