pandas中df.rename()的具體使用
df.rename()用於更改行列的標簽,即行列的索引。可以傳入一個字典或者一個函數。在數據預處理中,比較常用。
官方文檔:
DataFrame.rename(self, mapper=None, index=None, columns=None, axis=None, copy=True, inplace=False, level=None, errors=‘ignore’)
參數解釋:
創建實例
import pandas as pd df = pd.DataFrame({'name':['zhao','qian','sun','wang'],'mark':[150,122,155,132],'gender':['female','female','male','male']}) df
name mark gender
0 zhao 150 female
1 qian 122 female
2 zhou 155 male
3 wang 132 male
mapper:dict or function
映射關系,可以是字典,也可以是一個函數。
df.rename({0:111}) name mark gender 111 zhao 150 female #行索引從0變為111 1 qian 122 female 2 zhou 155 male 3 wang 132 male df.rename(lambda x: x+11) #參數也可以是函數,索引都加瞭11 name mark gender 11 zhao 150 female 12 qian 122 female 13 zhou 155 male 14 wang 132 male
index、columns、axis:
這3個參數作用類似,dataframe中有行和列兩個方向,在改名時,需要指明改名的是行還是列(默認是行),使用df.rename(index = mapper)或者df.rename(columns=mapper)的形式,和df.rename(mapper,axis=0 or 1)的效果是一樣的
df.rename(lambda x: x+'11',axis=1) name11 mark11 gender11 #列索引都加瞭11,name變為name11 0 zhao 150 female 1 qian 122 female 2 zhou 155 male 3 wang 132 male df.rename(columns=lambda x: x+'11')#等價於上面,寫法更簡潔直觀 name11 mark11 gender11 0 zhao 150 female 1 qian 122 female 2 zhou 155 male 3 wang 132 male
copy:bool,default = True
默認為True,效果不清楚。。。文檔就一句話,與會復制底層數據(also copy underlying data), 等一個課代表解答一下。
inplace:bool,default False
將結果返回賦值給原變量,無需再次將結果賦值給新變量。即df.rename(inplace=True)之後,df的值發生改變(pandas中好多方法都有這個參數,此處就演示瞭)
level int,level name,default none
針對多層索引,指定需要改名字的索引具體是哪一個。
df1 = pd.DataFrame([10,11,12,13],index=[['a','a','b','b'],[1,2,3,4],[4,3,2,1]],columns=['tt']) df1 tt #前三列都為索引 a 1 4 10 2 3 11 b 3 2 12 4 1 13 df1.rename(index={1:'dd'}) tt#索引中所有的1都變成瞭dd a dd 4 10 2 3 11 b 3 2 12 4 dd 13 df1.rename(index={1:'dd'},level=1) tt#隻有第2列索引改為dd(從0開始計數) a dd 4 10 2 3 11 b 3 2 12 4 1 13
errors:{‘ignore’, ‘raise’}, default ‘ignore’
發生錯誤的處理方式,ignore為忽略,raise為報錯。比如改名字是,如果傳入的參數中包含索引列沒有的值,就會報錯,ignore或者raise來決定錯誤的處理方式
df1 tt #前三列都為索引 a 1 4 10 2 3 11 b 3 2 12 4 1 13 df1.rename(index={11:'dd'},level=1,errors='raise') KeyError: '[11] not found in axis'#報錯,11沒在索引內
到此這篇關於pandas中df.rename()的具體使用的文章就介紹到這瞭,更多相關pandas df.rename()內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- pandas調整列的順序以及添加列的實現
- pandas之query方法和sample隨機抽樣操作
- python基礎篇之pandas常用基本函數匯總
- Python Pandas 中的數據結構詳解
- Python數據分析之 Pandas Dataframe修改和刪除及查詢操作