【数据分析可视化】重命名Dataframe的index

import numpy as np
import pandas as pd
from pandas import Series, DataFrame

建立测试的DataFrame

df1 = DataFrame(np.arange(9).reshape(3,3), index=['BJ','SH','GZ'], columns=['A','B','C'])
df1
A B C
BJ 0 1 2
SH 3 4 5
GZ 6 7 8
df1.index
Index(['BJ', 'SH', 'GZ'], dtype='object')
# 修改行列索引-直接赋值Series[]新数据
df1.index = Series(['bj','sh','gz'])
df1
A B C
bj 0 1 2
sh 3 4 5
gz 6 7 8
# 产生一个新index,并赋给当前index(map,函数控制)
df1.index = df1.index.map(str.upper)
df1
A B C
BJ 0 1 2
SH 3 4 5
GZ 6 7 8
# 重命名(行列从新指定)
df1.rename(index=str.lower, columns=str.lower)
a b c
bj 0 1 2
sh 3 4 5
gz 6 7 8
# 原值没有被修改
df1
A B C
BJ 0 1 2
SH 3 4 5
GZ 6 7 8
# 重命名(传入字典)
df1.rename(index={'BJ':'beijing'},columns={'A':'a'})
a B C
beijing 0 1 2
SH 3 4 5
GZ 6 7 8

回顾python 的Map函数

list1 = [1,2,3,4]
list2 = ['1','2','3','4']
# 列表解析(转换1->'1')
[str(x) for x in list1]
['1', '2', '3', '4']
# map转化方式
map(str, list1)
<map at 0x128edbf10>
list(map(str, list1))
['1', '2', '3', '4']

写一个本身的Map函数

df1
A B C
BJ 0 1 2
SH 3 4 5
GZ 6 7 8
def test_map(x):
    return x + '_ABC'
df1.index.map(test_map)
Index(['BJ_ABC', 'SH_ABC', 'GZ_ABC'], dtype='object')
df1.rename(index=test_map)
A B C
BJ_ABC 0 1 2
SH_ABC 3 4 5
GZ_ABC 6 7 8