Pandas玩转数据(三) -- DataFrame重命名

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

df1 = DataFrame(np.arange(9).reshape(3,3), index=['BJ','SH','GZ'], columns=['A','B','C'])
df1
Out[5]: 
    A  B  C
BJ  0  1  2
SH  3  4  5
GZ  6  7  8
df1.index
Out[6]: Index(['BJ', 'SH', 'GZ'], dtype='object')

# 方式一,直接用Series修改
df1.index
Out[6]: Index(['BJ', 'SH', 'GZ'], dtype='object')

# 方式二,使用map进行修改
df1.index.map(str.upper)
Out[10]: Index(['BJ', 'SH', 'GZ'], dtype='object')

df1.index = df1.index.map(str.upper)
df1
Out[12]: 
    A  B  C
BJ  0  1  2
SH  3  4  5
GZ  6  7  8

# 方式三,使用rename进行修改
df1.rename(index=str.lower)
Out[13]: 
    A  B  C
bj  0  1  2
sh  3  4  5
gz  6  7  8
df1
Out[14]: 
    A  B  C
BJ  0  1  2
SH  3  4  5
GZ  6  7  8

df1 = df1.rename(index=str.lower, columns=str.lower)

df1
Out[18]: 
    a  b  c
bj  0  1  2
sh  3  4  5
gz  6  7  8

# 同时修改行和列
df1 = df1.rename(index=str.lower, columns=str.lower)
df1
Out[18]: 
    a  b  c
bj  0  1  2
sh  3  4  5
gz  6  7  8

df1.rename(index={'bj':'beijing'}, columns={'a':'A'})
Out[19]: 
         A  b  c
beijing  0  1  2
sh       3  4  5
gz       6  7  8

# 谈一谈map, 从list1到list2的方式
list1 = [1,2,3,4]
list2 = ['1','2','3','4']
# 列表解析
[str(x) for x in list1]
Out[22]: ['1', '2', '3', '4']

# 传入自定义函数
def test_map(x):
    return x+'_ABC'

df1.index.map(test_map)
Out[29]: Index(['bj_ABC', 'sh_ABC', 'gz_ABC'], dtype='object')

df1.rename(index=test_map)
Out[30]: 
        a  b  c
bj_ABC  0  1  2
sh_ABC  3  4  5
gz_ABC  6  7  8

猜你喜欢

转载自blog.csdn.net/weixin_39778570/article/details/81106642
今日推荐