您好,登錄后才能下訂單哦!
小編給大家分享一下如何對pandas的行列名進行更改與數據選擇,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
一、pandas的行列名獲取和更改
1. 獲取: df.index() df.columns()
首先,舉個例子,做一個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
設置了列索引為 abc,行索引是自動生成的,也可以設置
>>>data.index = ['A','B','C'] >>>data
以下的做法都以這個 data 作為數據舉例
接下來就可以獲取索引了,index-行索引,columns-列索引
>>>data.index
>>>data.columns
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
說明3點:
1. index和columns無關,可以分別指定,也就是說,可以只修改行索引,那么rename()中只寫index
2. 索引可以任意挑選,如此處,index={'A':'D', 'C':'F'} 則只改A和C,columns同樣
3. inplace=True, 在原dataframe上改動
二、pandas的數據選擇
1. 直接用索引選(不靈活、不推薦) df[ ]
1) 選擇‘a'列
>>>data['a']
注意:
1. 這樣取出的數據類型為 Series
2. 這種方法只能取出一列,不能用數字下標,不能多選或片選, data['a','b'] , data['a':'c'] , data[0]
2)選擇'A','B'行
>>>data['A':'B'] >>>data[0:2] # 兩種方法同一結果
注意:
1. 這樣取出的數據類型為 DateFrame
2. 這種方法只能用于片選行,可以用數字下標,不能單獨取,即 data['A'] , data['A','B'] , data[1]
2.使用 .loc(推薦) df.loc(),()內參數先行后列,區別行列的取法
1) 取列:
>>>data.loc[:,['a','c']] #圖1 需要行全取,再對應指定列
2)取行:
>>>data.loc[['A','B']] #圖2 直接指定行
3)取行列交叉值:
>>>data.loc[['A'],['b','c']] #圖3
注意:
1. 區別 df.iloc()
.loc() —— 使用標簽 label 作為索引取值
.iloc() —— 使用整數下標 index 作為索引取值,如上面三句可以換成以下三句,輸出數據類型有不同
>>>data.iloc[:,[0,2]] # DataFrame >>>data.iloc[[0,1]] # DataFrame >>>data.iloc[0,[1,2]] # Series
2. 對于 數字類型的變量,可以使用bool 選取行,列不能用bool,如
>>>data.loc[data.b>5] # DataFrame
>>>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的行列名進行更改與數據選擇”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。