国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

對pandas的行列名更改與數(shù)據(jù)選擇詳解

2020-01-04 14:05:33
字體:
供稿:網(wǎng)友

記錄一些pandas選擇數(shù)據(jù)的內(nèi)容,此前首先說行列名的獲取和更改,以方便獲取數(shù)據(jù)。此文作為學(xué)習(xí)鞏固。

這篇博的內(nèi)容順序大概就是: 行列名的獲取 —> 行列名的更改 —> 數(shù)據(jù)選擇

一、pandas的行列名獲取和更改

1. 獲取: df.index() df.columns()

首先,舉個(gè)例子,做一個(gè)DataFrame如下:

>>>import pandas as pd>>>import numpy as np>>>data = pd.DataFrame({'a':[1,2,3],'b':[4,5,6],'c':[7,8,9]})>>>data

pandas,行列名,更改

設(shè)置了列索引為 abc,行索引是自動(dòng)生成的,也可以設(shè)置

>>>data.index = ['A','B','C']>>>data

pandas,行列名,更改

以下的做法都以這個(gè) data 作為數(shù)據(jù)舉例

接下來就可以獲取索引了,index-行索引,columns-列索引

>>>data.index

pandas,行列名,更改

>>>data.columns

pandas,行列名,更改

2. 修改,看到有很多方法,這里推薦一種比較靈活好用的方法

 df.rename(index={ }, columns={ }, inplace=True)>>>data.rename(index={'A':'D', 'B':'E', 'C':'F'}, columns={'a':'d', 'b':'e', 'c':'f'}, inplace = True)>>>data

pandas,行列名,更改

說明3點(diǎn):

1. index和columns無關(guān),可以分別指定,也就是說,可以只修改行索引,那么rename()中只寫index

2. 索引可以任意挑選,如此處,index={'A':'D', 'C':'F'} 則只改A和C,columns同樣

3. inplace=True, 在原dataframe上改動(dòng)

二、pandas的數(shù)據(jù)選擇

1. 直接用索引選(不靈活、不推薦) df[ ]

1) 選擇‘a'列

>>>data['a'] 

pandas,行列名,更改

注意:

1. 這樣取出的數(shù)據(jù)類型為 Series

2. 這種方法只能取出一列,不能用數(shù)字下標(biāo),不能多選或片選, data['a','b'] , data['a':'c'] , data[0]

2)選擇'A','B'行

>>>data['A':'B'] >>>data[0:2] # 兩種方法同一結(jié)果

pandas,行列名,更改

注意:

1. 這樣取出的數(shù)據(jù)類型為 DateFrame

2. 這種方法只能用于片選行,可以用數(shù)字下標(biāo),不能單獨(dú)取,即 data['A'] , data['A','B'] , data[1]

2.使用 .loc(推薦) df.loc(),()內(nèi)參數(shù)先行后列,區(qū)別行列的取法

1) 取列:

>>>data.loc[:,['a','c']] #圖1 需要行全取,再對應(yīng)指定列

2)取行:

>>>data.loc[['A','B']] #圖2 直接指定行

3)取行列交叉值:

>>>data.loc[['A'],['b','c']] #圖3 

pandas,行列名,更改

注意:

1. 區(qū)別 df.iloc()

.loc() —— 使用標(biāo)簽 label 作為索引取值

.iloc() —— 使用整數(shù)下標(biāo) index 作為索引取值,如上面三句可以換成以下三句,輸出數(shù)據(jù)類型有不同

>>>data.iloc[:,[0,2]] # DataFrame>>>data.iloc[[0,1]] # DataFrame>>>data.iloc[0,[1,2]] # Series

2. 對于 數(shù)字類型的變量,可以使用bool 選取行,列不能用bool,如

>>>data.loc[data.b>5] # DataFrame

pandas,行列名,更改

>>>data.loc[data.b>5,['c']] #DataFrame 輸出為9位置的frame>>>data.iloc[data.b.values>5,[2]] #DataFrame 輸出同上,需要有 .values取值

3. .ix[ ] 可以混用label和index,位置使用同 .loc[ ] .iloc[ ]

以上這篇對pandas的行列名更改與數(shù)據(jù)選擇詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持VEVB武林網(wǎng)。


注:相關(guān)教程知識閱讀請移步到python教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 平度市| 阿克| 阜新市| 萨迦县| 措勤县| 广东省| 镇远县| 威信县| 台前县| 集贤县| 乐清市| 乡城县| 东乌| 汕头市| 上饶县| 陵水| 合江县| 泉州市| 东乡族自治县| 平泉县| 大同县| 荆州市| 拉萨市| 永城市| 东莞市| 玉树县| 桓仁| 阿克陶县| 来安县| 新绛县| 视频| 策勒县| 北票市| 托克逊县| 临潭县| 咸宁市| 泽普县| 镇坪县| 东阳市| 达拉特旗| 张北县|