對pandas的行列名更改與數(shù)據(jù)選擇詳解
記錄一些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
設(shè)置了列索引為 abc,行索引是自動生成的,也可以設(shè)置
>>>data.index = ['A','B','C'] >>>data
以下的做法都以這個(gè) data 作為數(shù)據(jù)舉例
接下來就可以獲取索引了,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點(diǎn):
1. index和columns無關(guān),可以分別指定,也就是說,可以只修改行索引,那么rename()中只寫index
2. 索引可以任意挑選,如此處,index={'A':'D', 'C':'F'} 則只改A和C,columns同樣
3. inplace=True, 在原dataframe上改動
二、pandas的數(shù)據(jù)選擇
1. 直接用索引選(不靈活、不推薦) df[ ]
1) 選擇‘a(chǎn)'列
>>>data['a']
注意:
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é)果
注意:
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
注意:
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
>>>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è)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Django框架HttpResponse對象用法實(shí)例分析
這篇文章主要介紹了Django框架HttpResponse對象用法,結(jié)合實(shí)例形式分析了Django框架HttpResponse對象基本原理、功能及響應(yīng)請求的相關(guān)操作技巧,需要的朋友可以參考下2019-11-11Python中矩陣創(chuàng)建和矩陣運(yùn)算方法
今天小編就為大家分享一篇Python中矩陣創(chuàng)建和矩陣運(yùn)算方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08python如何解析復(fù)雜sql,實(shí)現(xiàn)數(shù)據(jù)庫和表的提取的實(shí)例剖析
這篇文章主要介紹了python如何解析復(fù)雜sql,實(shí)現(xiàn)數(shù)據(jù)庫和表的提取的實(shí)例剖析,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05pycharm實(shí)現(xiàn)設(shè)置自動的參數(shù)注釋標(biāo)識
這篇文章主要介紹了pycharm實(shí)現(xiàn)設(shè)置自動的參數(shù)注釋標(biāo)識,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02pytorch_pretrained_bert如何將tensorflow模型轉(zhuǎn)化為pytorch模型
這篇文章主要介紹了pytorch_pretrained_bert將tensorflow模型轉(zhuǎn)化為pytorch模型的操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06Django+vue+vscode前后端分離搭建的實(shí)現(xiàn)
本文以一個(gè)非常簡單的demo為例,介紹了利用django+drf+vue的前后端分離開發(fā)模式,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2023-08-08python獲取標(biāo)準(zhǔn)北京時(shí)間的方法
這篇文章主要介紹了python獲取標(biāo)準(zhǔn)北京時(shí)間的方法,實(shí)例分析了Python通過www.beijing-time.org的官網(wǎng)獲取標(biāo)準(zhǔn)北京時(shí)間的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03