好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > pandas多層索引的創(chuàng)建和取值以及排序的實現(xiàn)

pandas多層索引的創(chuàng)建和取值以及排序的實現(xiàn)

熱門標簽:汕頭電商外呼系統(tǒng)供應商 電銷機器人 金倫通信 北京外呼電銷機器人招商 云南地圖標注 南京crm外呼系統(tǒng)排名 crm電銷機器人 賓館能在百度地圖標注嗎 400電話 申請 條件 鄭州智能外呼系統(tǒng)中心

多層索引的創(chuàng)建

普通-多個index創(chuàng)建

  • 在創(chuàng)建數據的時候加入一個index列表,這個index列表里面是多個索引列表

Series多層索引的創(chuàng)建方法

import pandas as pd
s = pd.Series([1,2,3,4,5,6],index=[['張三','張三','李四','李四','王五','王五'],
                  ['期中','期末','期中','期末','期中','期末']])
# print(s)
s

張三  期中    1
    期末    2
李四  期中    3
    期末    4
王五  期中    5
    期末    6
dtype: int64

利用 numpy中的隨機數

import numpy as np

data = np.random.randint(0,100,size=(6,3))
# np.random.randint(0,100,size=(6,3))是使用numpy中的隨機模塊random中,生成隨機整數方法randint,
# 里面的參數size是指定生成6行3列的數據,并且每個數字的范圍在0到100之間

data
array([[44, 66, 67],
    [82, 52, 0],
    [34, 78, 23],
    [38, 4, 43],
    [60, 62, 40],
    [57, 9, 11]])

Dataframe多層索引創(chuàng)建

import pandas as pd
import numpy as np

data = np.random.randint(0,100,size=(6,3))
df = pd.DataFrame(data,index=[['張三','張三','李四','李四','王五','王五'],
               ['期中','期末','期中','期末','期中','期末']],
           columns=['Java','Web','Python'])

df

Java Web Python
張三 期中 68 4 90
期末 33 63 73
李四 期中 30 13 68
期末 14 18 48
王五 期中 34 66 26
期末 89 10 35

簡化創(chuàng)建-from_product()

import pandas as pd
import numpy as np

data = np.random.randint(0,100,size=(6,3))
names = ['張三','李四','王五']
exam = ['期中','期末']
index = pd.MultiIndex.from_product([names,exam])
df = pd.DataFrame(data,index=index,columns=['Java','Web','Python'])
# print(df)
df

Java Web Python
張三 期中 51 78 47
期末 39 53 36
李四 期中 33 60 83
期末 90 55 3
王五 期中 37 45 66
期末 6 82 71

from_product()在這個里面的列表中位置不同, 產生的索引頁會不同

index = pd.MultiIndex.from_product([exam, names])
df = pd.DataFrame(data,index=index,columns=['Java','Web','Python'])
# print(df)
df

Java Web Python
期中 張三 51 78 47
李四 39 53 36
王五 33 60 83
期末 張三 90 55 3
李四 37 45 66
王五 6 82 71

from_product([exam,names])會將列表中第一個元素作為最外層索引,依次類推

多層索引的取值

獲取到我們想要的數據

獲取多層索引Series中的數據

創(chuàng)建數據

import pandas as pd
s = pd.Series([1,2,3,4,5,6],index=[['張三','張三','李四','李四','王五','王五'],
                  ['期中','期末','期中','期末','期中','期末']])
print(s)

張三  期中    1
    期末    2
李四  期中    3
    期末    4
王五  期中    5
    期末    6
dtype: int64

可以直接使用[]的方式取最外面的一個層級 s[‘張三']

s['李四']

# 注意:[]取值方式,不可直接使用最外層以外的其他層級,例如:s['期末']

期中    3
期末    4
dtype: int64

使用['外索引', '內索引'], 獲取某個數據

注意:[‘張三',‘期末']他們的順序不能變。剝洋蔥原則,從外到內一層一層的剝。

s['李四', '期中'] # 李四期中分值

# 注意:['張三','期末']他們的順序不能變。剝洋蔥原則,從外到內一層一層的剝。

3

使用[]的切片,獲取數據s[:,‘期中']

s[:,'期中'] # 第一個值為全部的外索引

張三    1
李四    3
王五    5
dtype: int64

使用 loc

  • loc 使用的是標簽suoyin
  • iloc使用的是位置索引
# loc 使用方式與 [] 的方式基本一樣

s.loc['張三']
s.loc['張三','期中']
s.loc[:,'期中']

# iloc 的取值并不會受多層索引影響,只會根據數據的位置索引進行取值, 不推薦

張三    1
李四    3
王五    5
dtype: int64

多層索引DataFrame的取值

在對多層索引DataFrame的取值是,推薦使用 loc() 函數

import pandas as pd
import numpy as np
#size參數是指定生成6行3列的數組
data = np.random.randint(0,100,size=(6,3))
names = ['張三','李四','王五']
exam = ['期中','期末']
index = pd.MultiIndex.from_product([names,exam])
df = pd.DataFrame(data,index=index,columns=['Java','Web','Python'])
df

Java Web Python
張三 期中 3 40 52
期末 74 38 85
李四 期中 7 28 16
期末 9 25 0
王五 期中 13 24 8
期末 49 46 1

三種方式都可以獲取張三期中各科成績

# df.loc['張三','期中']
# df.loc['張三'].loc['期中']
# df.loc[('張三','期中')]

注意:DataFrame中對行索引的時候和Series有一個同樣的注意點,就是無法直接對二級索引直接進行索引,必須讓二級索引變成一級索引后才能對其進行索引

多層索引的排序

  • 使用sort_index() 排序
  • level參數可以指定是否按照指定的層級進行排列
  • 第一層索引值為0, 第二層索引的值為1

創(chuàng)建數據

import pandas as pd
data = np.random.randint(0,100,size=(9,3))
key1 = ['b','c','a']
key2 = [2,1,3]
index = pd.MultiIndex.from_product([key1,key2])
df = pd.DataFrame(data,index=index,columns=['Java','Web','Python'])

df 

Java Web Python
b 2 56 82 81
1 84 16 55
3 35 25 86
c 2 76 1 76
1 36 28 94
3 79 70 97
a 2 25 17 30
1 38 38 78
3 41 75 90

排序

  • DataFrame按行索引排序的方法是sort_index()
  • 如果直接使用的話,不傳參數, 會把每一層索引根據值進行升序排序
df.sort_index()

Java Web Python
a 1 18 60 74
2 66 87 27
3 96 18 64
b 1 72 58 52
2 22 31 22
3 31 12 83
c 1 6 54 96
2 9 47 18
3 31 63 4

# 當level=0時,ascending=False, 會根據第一層索引值進行降序排序
df.sort_index(level=0,ascending=False)

Java Web Python
c 3 79 70 97
2 76 1 76
1 36 28 94
b 3 35 25 86
2 56 82 81
1 84 16 55
a 3 41 75 90
2 25 17 30
1 38 38 78

# 當level=1時,會根據第二層索引值進行降序排序

df.sort_index(level=1,ascending=False)

# 數據會根據第二層索引值進行相應的降序排列,
# 如果索引值相同時會根據其他層索引值排列

Java Web Python
c 3 79 70 97
b 3 35 25 86
a 3 41 75 90
c 2 76 1 76
b 2 56 82 81
a 2 25 17 30
c 1 36 28 94
b 1 84 16 55
a 1 38 38 78

通過level設置排序的索引層級,其他層索引也會根據其排序規(guī)則進行排序

到此這篇關于pandas多層索引的創(chuàng)建和取值以及排序的實現(xiàn)的文章就介紹到這了,更多相關pandas多層索引內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • pandas組內排序,并在每個分組內按序打上序號的操作
  • pandas按照列的值排序(某一列或者多列)
  • pandas的排序和排名的具體使用
  • 使用Pandas對數據進行篩選和排序的實現(xiàn)
  • Pandas分組與排序的實現(xiàn)
  • Pandas之排序函數sort_values()的實現(xiàn)
  • pandas通過索引進行排序的示例
  • pandas groupby分組對象的組內排序解決方案

標簽:梅州 石家莊 錫林郭勒盟 昆明 懷化 文山 西寧 浙江

巨人網絡通訊聲明:本文標題《pandas多層索引的創(chuàng)建和取值以及排序的實現(xiàn)》,本文關鍵詞  pandas,多層,索引,的,創(chuàng),建和,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《pandas多層索引的創(chuàng)建和取值以及排序的實現(xiàn)》相關的同類信息!
  • 本頁收集關于pandas多層索引的創(chuàng)建和取值以及排序的實現(xiàn)的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 日韩欧美精品在线视频| 大学生高潮水多毛片毛毛毛| 亚洲人成电影网站免av费无码| 欧美tv xtime| 午夜视| 人妻亂伦中文字幕| 91丨国产丨白浆秘?3D动漫| www.99热这里只有精品| 一进去一爽又粗又大| 国产hhhhhhh在线观看| 朴妮唛捏奶29分钟视频在线观看| 欧美黑人大尺度又粗又长在线观看| 龚玥菲版潘金莲未删减| 双性被搡到尿失禁喷水| 大炕上翁熄粗大交换刘雪| 黄色网址进入| 色天天网| 成人影院免费942cm| 成人免费网址在线观看黄动漫| 特级一级毛片免费完整版视频| 狠狠干五月天| 国产精品不卡三区| 老妇女性较大毛片免费视频| 午夜视频十八嗯嗯啊免费| 羞耻play调教打屁股撅起来| yy6080新视影视觉| 女人色18禁爆乳美女免费网站| 久久精品22| 用力深一点| chinese黑人第一次| 白丝美女被爆操| 大肉大捧一进一出好爽作文| 一本加勒比hezyo高清| 亚洲四播房| 三种人不用治幽门杆菌| 亚洲偷偷拍一区二区三区四区| 无遮无挡18禁啪啪成人小说男男| les女同h高h喷水| 爸爸说没人可以c| 国产综合11p| 国产一级a爱做片免费观看人与生|