Python學習筆記:pd.rename重新命名行列索引標籤
阿新 • • 發佈:2021-11-04
一、介紹
df.rename()
方法用於重新命名資料框行列的標籤,即行索引、列標籤。
可以傳入一個字典或者一個函式,常用於資料預處理。
- 使用語法
DataFrame.rename(mapper=None, index=None, columns=None,
axis=None, copy=True, inplace=False,
level=None, errors='ignore')
- 引數解釋
mapper -- 對映關係(字典、函式) index -- 行索引 columns -- 列名 axis -- 修改方向 axis=0 行 axis=1 列 copy -- 複製底層資料 inplace -- 是否修改原資料 level -- 針對多層索引 指定級別 errors -- {'ignore', 'raise'} 忽略 or 報錯
二、實操
1.建立測試資料集
import pandas as pd
df = pd.DataFrame({'A':[1,2,3],
'B':[4,5,6]})
'''
A B
0 1 4
1 2 5
2 3 6
'''
2.mapper
對映關係,可以是字典,也可以是一個函式。
# 修改行索引 傳入字典 df.rename({0:100}) ''' A B 100 1 4 1 2 5 2 3 6 ''' # 傳入函式 df.rename(lambda x: x+100) ''' A B 100 1 4 101 2 5 102 3 6 '''
3.index/columns/axis
重新命名時需要指定行、或者列方向。
df.rename(index=mapper)
等同於df.rename(mapper, axis=0)
df.rename(columns=mapper)
等同於df.raname(mapper, axis=1)
# 修改行索引 df.rename(lambda x: x+100, axis=0) ''' A B 100 1 4 101 2 5 102 3 6 ''' # 修改行索引 df.rename({1:2, 2:4}, axis='index') # 修改列名 df.rename(lambda x: x+'100', axis=1) df.rename(columns=lambda x: x+'100') # 同上 ''' A100 B100 0 1 4 1 2 5 2 3 6 ''' # 列名轉換為小寫 df.rename(str.lower, axis='columns') # 傳入字典 df.rename(columns={'A':'aa', 'B':'bb'}) ''' aa bb 0 1 4 1 2 5 2 3 6 '''
4.轉換標籤資料型別
df.index
# RangeIndex(start=0, stop=3, step=1)
df.rename(index=str).index
# Index(['0', '1', '2'], dtype='object')
5.修改不存在標籤時報錯
# 直接修改 忽略報錯
df.rename(columns={'A':'aa', 'B':'bb', 'C':'cc'})
# 報錯
df.rename(columns={'A':'aa', 'B':'bb', 'C':'cc'}, errors='raise')
# KeyError: "['C'] not found in axis"
三、結論
pd.rename()
方法適合於修改個別的索引和列名,如果需要大量修改或者全部修改的話,適合使用 set_index()
或者 reset_index()
方法。
多層索引也儘量避免使用。
參考連結:pandas學習之df.rename()