重命名DataFrame的index

重命名DataFrame的index

引入相关库

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

DataFrame的index的重命名

创建一个3*3的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

查看index

df1.index
Index(['BJ', 'SH', 'GZ'], dtype='object')

重新给index赋值

df1.index=Series(['bj','sh','gz'])
df1
    A	B	C
bj	0	1	2
sh	3	4	5
gz	6	7	8

通过map方法更改index的值,传入str.upper把index变成大写的(注意:产生一个新的index而已,df1的index没有发生改变

df1.index.map(str.upper)
df1
    A	B	C
bj	0	1	2
sh	3	4	5
gz	6	7	8

通过对index进行赋值,改变df1的index

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

通过rename对index进行修改,产生一个新的DataFrame,df1并没有发生改变

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

还可以对rename传入一个字典,通过字典对特定的index或column进行更改

df1.rename(index={'BJ':'beijing'},columns={"A":'a'})
        a	B	C
beijing	0	1	2
SH	3	4	5
GZ	6	7	8

map的回顾

list1=[1,2,3,4]
list2=['1','2','3','4']

把list1转换为list2的两种方法:
列表解析

[str(x) for x in list1]
['1', '2', '3', '4']

通过map函数,对list1里面每个函数都运行一次str,返回一个map对象,通过list转为一个list

map(str,list1)
<map at 0x24ce44fdac8>
list(map(str,list1))
['1', '2', '3', '4']

在rename里面传入自建函数

def test_map(x):
    return x+'_ABC'

上成一个新的index为原始的每个index加上’_ABC’

df1.index.map(test_map)
Index(['BJ_ABC', 'SH_ABC', 'GZ_ABC'], dtype='object')

生成新的DataFrame把每个index的值变为原始index加上’_ABC’

df1.rename(index=test_map)
	    A	B	C
BJ_ABC	0	1	2
SH_ABC	3	4	5
GZ_ABC	6	7	8
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值