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

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

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

1、創(chuàng)建

相較于一層索引,在創(chuàng)建多層索引時給字段添加關系,其創(chuàng)建方法包括運用元組、數(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基礎上創(chuàng)建

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

參數(shù)

keys,要設置為索引的列名(如有多個應放在一個列表里)

drop: bool = True,將設置為索引的列刪除,默認為True

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

inplace: bool = False, 是否在原DataFrame上修改,默認為False

verify_integrity: bool = False,是否檢查索引有無重復,默認為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(每一行的下標)為元組

print(df.index)

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

根據(jù)標簽索引

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、分層計算

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

我們以例子進行說明:(這個輸出的DataFrame有點丑,別介意)

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'),['期中','期末'],['平時成績','考試成績']]),
                columns=['math','python','english']
                )
print(df)

 我們先來看層級,最左邊的標簽為字母,然后是“期中/期末”,最后是成績類別,所以對應的層數(shù)為0,1,2。弄清楚之后,我們使用代碼看看運算結果。

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時,根據(jù)每個同學的其他4項計算各科平均分,level=1時,計算期中期末的平均分。

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

相關文章

  • 從基礎到進階詳解Python字符串統(tǒng)計的實用指南

    從基礎到進階詳解Python字符串統(tǒng)計的實用指南

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

    Python日志模塊logging的使用方法總結

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

    python super用法及原理詳解

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

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

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

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

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

    Python實現(xiàn)遺傳算法(虛擬機中運行)

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

    詳解Python之數(shù)據(jù)序列化(json、pickle、shelve)

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

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

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

    Python輸出\u編碼將其轉換成中文的實例

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

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

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

最新評論

城口县| 家居| 大竹县| 峨眉山市| 乃东县| 昌宁县| 大冶市| 开远市| 西宁市| 武穴市| 兴化市| 阿克| 兴文县| 鲁山县| 泽州县| 安宁市| 上蔡县| 乌拉特前旗| 察哈| 雅安市| 基隆市| 政和县| 青海省| 旬阳县| 社旗县| 屯门区| 榆树市| 昭觉县| 河东区| 新郑市| 尉犁县| 锡林郭勒盟| 沙坪坝区| 通化县| 东兴市| 安康市| 通海县| 枝江市| 措勤县| 环江| 汾西县|