Python學習筆記:pd.rename重命名行列索引標簽


一、介紹

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()

參考鏈接:pandas.DataFrame.rename

參考鏈接:11、pandas的修改列名和索引rename()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM