欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

如何在pandas中利用DataFrame對象對數(shù)據(jù)進(jìn)行抽取-創(chuàng)新互聯(lián)

這篇文章將為大家詳細(xì)講解有關(guān)如何在pandas中利用DataFrame對象對數(shù)據(jù)進(jìn)行抽取,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

扎賚諾爾ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!

pandas的DataFrame對象,本質(zhì)上是二維矩陣,跟常規(guī)二維矩陣的差別在于前者額外指定了每一行和每一列的名稱。這樣內(nèi)部數(shù)據(jù)抽取既可以用“行列名稱(對應(yīng).loc[]方法)”,也可以用“矩陣下標(biāo)(對應(yīng).iloc[]方法)”兩種方式進(jìn)行。
下面具體說明:


首先生成一個DataFrame對象:


import pandas as pd
score = [[34,67,87],[68,98,58],[75,73,86],[94,59,81]]
name = ['小明','小紅','小李']
course = ['語文','數(shù)學(xué)','英語','政治']
mydata1 = pd.DataFrame(data=score,columns=name,index=course)#指定行名(index)和列名(columns)
print(mydata1)
mydata2 = pd.DataFrame(score)#不指定行列名,默認(rèn)使用0,1,2……
print(mydata2)
#指定行列名
  小明 小紅 小李
語文 34 67 87
數(shù)學(xué) 68 98 58
英語 75 73 86
政治 94 59 81
#采用默認(rèn)行列名
  0  1  2 (默認(rèn)列名)
0 34 67 87
1 68 98 58
2 75 73 86
3 94 59 81

DataFrame對象生成時除了必須指定data參數(shù)外,用戶還可以指定兩個參數(shù)columns(列名)和index(行名,注意這里的index不僅可以是數(shù)字,也可以是用戶指定的任何數(shù)據(jù)類型,如字母),如果不指定,則行列名默認(rèn)都采用0、1、2……。


下圖說明了前面的情況:


如何在pandas中利用DataFrame對象對數(shù)據(jù)進(jìn)行抽取

DataFrame對象的.loc[]和.iloc[]方法都可用于抽取數(shù)據(jù),區(qū)別是:

  • .loc[]:是location,以columns(列名)和index(行名)作為參數(shù)。

  • .iloc[]:是index location,以二維矩陣的位置指標(biāo)(即0,1,2……)作為參數(shù)。


.loc[]語法

.loc[行標(biāo)簽名/[行標(biāo)簽名list],列標(biāo)簽名/[列標(biāo)簽名list]],即有兩個輸入?yún)?shù),第一個指定行名,第二個指定列名。當(dāng)只有一個參數(shù)時,默認(rèn)是行名(即抽取整行),所有列都選中。

.iloc[]語法

.loc[行位置/[行位置list],列位置/[列位置list]],也有兩個輸入?yún)?shù),第一個指定行位置,第二個指定列位置。當(dāng)只有一個參數(shù)時,默認(rèn)是行位置(即抽取整行),所有列都選中。

例1.抽取1行數(shù)據(jù)

#以下用.loc[]抽取1行名為‘語文'的數(shù)據(jù)(包括所有列)
mydata1.loc['語文']
mydata1.loc['語文',]
mydata1.loc['語文',:]
mydata1.loc[['語文'],]
mydata1.loc[['語文'],:]
#以下用.iloc[]抽取1行名為‘語文'的數(shù)據(jù)(包括所有列)
mydata1.iloc[0]
mydata1.iloc[0,]
mydata1.iloc[0,:]
mydata1.iloc[[0],]
mydata1.iloc[[0],:]

#輸出方式1(第1個參數(shù)無[],這是一個Series對象):
小明  34
小紅  67
小李  87
Name: 語文, dtype: int64
#輸出方式2(第1個參數(shù)有[],這是一個DataFrame對象):
  小明 小紅 小李
語文 34 67 87
Name: 語文, dtype: int64

上述.loc[]和.iloc[]都只接收了1個參數(shù)“語文”或者“0”,因此默認(rèn)都表示行信息,而列則全部被選中,即抽取'語文'這整一行數(shù)據(jù)。','表示將兩個參數(shù)隔開(如果有兩個參數(shù)的話),':'這里表示選擇中所有列。當(dāng)只有一個輸入?yún)?shù)時,python默認(rèn)','和':'既可寫上也可省略。注意:參數(shù)['語文']或[0]中只有一個對象時(即只有一行),[]也可以省略,如果有多個對象(即多行)則必須加上[]。此外還需注意,加上[]表示抽取的結(jié)果無論是一個數(shù)據(jù),一行數(shù)據(jù),還是一列數(shù)據(jù),他都是DataFrame對象;不加[]時,如果選中的是一行或者一列數(shù)據(jù),則是Series對象,如果是一個單獨(dú)的數(shù)據(jù),則是該數(shù)據(jù)本身的類型。

例2.指定行名抽取任意多行數(shù)據(jù)

#指定多行行名抽取
mydata1.loc[['英語','語文','政治'],:]
  小明 小紅 小李
英語 75 73 86
語文 34 67 87
政治 94 59 81
mydata1.iloc[[1,0],:]
  小明 小紅 小李
數(shù)學(xué) 68 98 58
語文 34 67 87

例2和例1的差別是,第一個參數(shù)指定了多行一起輸出,此時必須用[]將各行名或者下標(biāo)括起來,否則出錯。后面的','和':'同例1,可省略。注意:原始數(shù)據(jù)的行順序是:語文、數(shù)學(xué)、英語、政治,這里的提取順序是['英語','語文','政治'],而輸出也是'英語','語文','政治',可見輸出順序和參數(shù)指定順序是一致的,而非按原始順序輸出。

例3.抽取連續(xù)任意多行數(shù)據(jù)

mydata1.loc['語文':'英語',:] #連續(xù)抽取從語文到英語的所有行
  小明 小紅 小李
語文 34 67 87
數(shù)學(xué) 68 98 58
英語 75 73 86

mydata1.loc[:'英語',:] #連續(xù)抽取從第1行到英語的所有行
  小明 小紅 小李
語文 34 67 87
數(shù)學(xué) 68 98 58
英語 75 73 86

mydata1.iloc[0:3,:] #連續(xù)抽取1~3行
  小明 小紅 小李
語文 34 67 87
數(shù)學(xué) 68 98 58
英語 75 73 86

mydata1.iloc[1:,:] #連續(xù)抽取第2行最后一行
  小明 小紅 小李
數(shù)學(xué) 68 98 58
英語 75 73 86
政治 94 59 81

例3依然是接受1個參數(shù),列參數(shù)沒有,后面的','和':'同例1,可省略。連續(xù)參數(shù)用‘start:end'的方式指定行范圍。注意:這里不能用[]將其括起來,否則出錯。此外用行列名連續(xù)取值時,比如['語文':'政治']會把'政治'所在行也取出來,而利用矩陣下標(biāo)時,0:3只取0,1,2對應(yīng)的三行,最后一行不會取出;但是如果行列標(biāo)簽名本身就是整數(shù)0,1,2……,而不是文字或者其他類型,那么在使用連續(xù)行列標(biāo)簽名取數(shù)據(jù)時,最后一行或者列是不會被取出的。

例4.抽取“列”的各種情況

mydata1.loc[:,['小紅']] #所有行,小紅列,只有一列時,內(nèi)部[]也可以省略
  小紅
語文 67
數(shù)學(xué) 98
英語 73
政治 59

mydata1.loc[:,['小明','小紅']] #所有行,小明和小紅兩列
  小明 小紅
語文 34 67
數(shù)學(xué) 68 98
英語 75 73
政治 94 59

mydata1.iloc[:,[1,2]] #所有行,第2和第3列
  小紅 小李
語文 67 87
數(shù)學(xué) 98 58
英語 73 86
政治 59 81

mydata1.loc[:,'小明':] #連續(xù)抽取從小明列開始到最后一列
  小明 小紅 小李
語文 34 67 87
數(shù)學(xué) 68 98 58
英語 75 73 86
政治 94 59 81

mydata1.iloc[:,:3] #連續(xù)抽取從1列開始到第3列
  小明 小紅 小李
語文 34 67 87
數(shù)學(xué) 68 98 58
英語 75 73 86
政治 94 59 81

抽取整列的方式跟抽取整行在參數(shù)設(shè)置上完全一樣。.loc[]和.iloc[]兩個方法默認(rèn)列為第二個參數(shù),因此抽取整列時,都必須帶上':,'作為區(qū)分前面行參數(shù)的‘分隔符',否則出錯。

例5.同時抽取指定行和列對應(yīng)數(shù)據(jù)

mydata1.loc['語文','小明'] #輸入了兩個參數(shù),輸出語文行小明列,即一個數(shù)據(jù)
34
<class 'numpy.int64'> #沒帶[]時,單個數(shù)字是這種類型
mydata1.loc[['語文'],['小明']] #輸出語文行小明列,即一個數(shù)據(jù)
  小明
語文 34
<class 'pandas.core.frame.DataFrame'> #帶[]時,輸出依然是DataFrame對象

mydata1.iloc[1,2] #第2行第3列數(shù)據(jù),單個數(shù)據(jù)
58
<class 'numpy.int64'> #注意沒帶[]時的輸出類型
mydata1.iloc[[1],[2]]
  小李
數(shù)學(xué) 58
<class 'pandas.core.frame.DataFrame'> #注意帶[]時的輸出類型

mydata1.loc[['語文','數(shù)學(xué)'],['小明']] #輸出語文數(shù)學(xué)行,小明列的數(shù)據(jù)
  小明
語文 34
數(shù)學(xué) 68

mydata1.iloc[1:,[0,2]] #輸出從第2行到最后一行,第1和第3行對應(yīng)數(shù)據(jù)
  小明 小李
數(shù)學(xué) 68 58
英語 75 86
政治 94 81

同時抽取分部行和列的情況,就是把上述單獨(dú)抽取行和列的方式合并起來用。抽取整個DataFrame對象則是.loc[:,:]或.iloc[:,:],雖然這么做沒啥意義。

總結(jié):

(1)DataFrame對象的.loc[,]和.iloc[,]方法用于抽取數(shù)據(jù),.loc[,]用行列的標(biāo)簽名作為參數(shù),.iloc[,]用二維矩陣元素的網(wǎng)格下標(biāo)作為參數(shù)。
(2)兩個方法都接受兩個參數(shù),第一個是“行標(biāo)簽”或者“矩陣行號”,第二個是“列標(biāo)簽”或者“矩陣列號”。
(3)兩種方法當(dāng)只指定一個輸入?yún)?shù)時,都默是跟“行”相關(guān),而“列”則全部被選中。如何行和列都需要指定時,中間用“逗號,”隔開,這非常重要,否則出錯。
(4)當(dāng)需要選中所有行的某幾列時,行參數(shù)可以省略,列參數(shù)需要指定,此時列參數(shù)前面必須帶上“,:”,形如.loc[:,列參數(shù)],.iloc[:,列參數(shù)]。
(5).loc[,]和.iloc[,]設(shè)置了一個還是兩個輸入?yún)?shù),關(guān)鍵看有沒有“,”將兩個參數(shù)分開,且要區(qū)分逗號是一個參數(shù)的內(nèi)部逗號,還有用于分隔行列參數(shù)的逗號。
(6)對于兩個參數(shù)的概念區(qū)分,.loc['語文','數(shù)學(xué)']這表示輸入了兩個參數(shù),行參數(shù)是‘語文',列參數(shù)是‘?dāng)?shù)學(xué)',對于上面的表格而言這是錯的,因為沒有叫‘?dāng)?shù)學(xué)'的列,應(yīng)寫為[['語文','數(shù)學(xué)']],即‘?dāng)?shù)學(xué)'也是行參數(shù)的一部分,['語文','數(shù)學(xué)']整體作為一個行參數(shù),這里的逗號不是用以分隔行和列,僅僅是行l(wèi)ist里面的逗號。[['語文','數(shù)學(xué)']]=[['語文','數(shù)學(xué)'],]=[['語文','數(shù)學(xué)'],:],都表示只有一個行參數(shù),列全部選中。


關(guān)于如何在pandas中利用DataFrame對象對數(shù)據(jù)進(jìn)行抽取就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

文章名稱:如何在pandas中利用DataFrame對象對數(shù)據(jù)進(jìn)行抽取-創(chuàng)新互聯(lián)
本文鏈接:http://aaarwkj.com/article4/dohjoe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、網(wǎng)站策劃、面包屑導(dǎo)航Google、全網(wǎng)營銷推廣用戶體驗

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)
黄片色呦呦视频免费看| 成年自拍视频在线观看| 欧美中文字幕在线精品| 精品人妻少妇一区二区三| 亚洲av成人永久网站一区| 天天爽天天看天天射天天操| 欧美日韩精品偷拍一区二区| 日本成人午夜福利在线观看| 午夜在线观看成人av| 日本欧美高清一区二区| 国产国产成年年人免费看片| 日本成人午夜福利在线观看| 2020年国产97精品自拍| 日韩精品人妻一区二区网站| 日本一区二区三区加勒比| 亚洲婷婷综合精品五月天| 久久精品国产亚洲av制服| 亚洲男人成人性天堂网站| 国产男女视频免费观看| 亚洲天堂,男人的天堂| 国产精品久久亚洲一区二区| 国产伦人偷精品免费视频| 深夜av一区二区三区| 精品人妻少妇一区二区三区| 99久久免费精品老色| 少妇内射呻吟中文字幕视频| 国产免费播放一区二区三区| 亚洲精品在线免费av| 和富婆啪啪一区二区免费看| 亚洲三级伦理中文字幕| 亚洲天堂av日韩在线| 欧美在线免费黄片视频| 一级欧美黄片在线播放| 欧美人与性一区二区三区| 亚洲天堂岛av一区二区| 欧美v日韩v亚洲综合国产高清| 深夜视频国产在线观看| 国产一区免费二区三区四区| 国产又粗又爽视频免费| 青草成人在线视频观看| 日本熟妇一区二区三区在线视频 |