pandas中DataFrame修改index、columns名的方法示例
一般常用的有两个方法:
1、使用DataFrame.index=[newName],DataFrame.columns=[newName],这两种方法可以轻松实现。
2、使用rename方法(推荐):
DataFrame.rename(mapper=None,index=None,columns=None,axis=None,copy=True,inplace=False,level=None)
参数介绍:
- mapper,index,columns:可以任选其一使用,可以是将index和columns结合使用。index和column直接传入mapper或者字典的形式。
- axis:int或str,与mapper配合使用。可以是轴名称(‘index',‘columns')或数字(0,1)。默认为'index'。
- copy:boolean,默认为True,是否复制基础数据。
- inplace:布尔值,默认为False,是否返回新的DataFrame。如果为True,则忽略复制值。
importnumpyasnp
importpandasaspd
frompandasimportSeries,DataFrame
df1=DataFrame(np.arange(9).reshape(3,3),index=['bj','sh','gz'],columns=['a','b','c'])
print(df1)
'''
abc
bj012
sh345
gz678
'''
#修改df1的index
print(df1.index)#可以打印出print的值,同时也可以为其赋值
df1.index=Series(['beijing','shanghai','guangzhou'])
print(df1)
'''
abc
beijing012
shanghai345
guangzhou678
'''
#可以使用map方法进行映射,map的使用方法就和python中的map几乎一样
print(df1.index.map(str.upper))#Index(['BEIJING','SHANGHAI','GUANGZHOU'],dtype='object')
print(df1)#结果并未改变,上面只是返回一个dataframe而已
'''
abc
beijing012
shanghai345
guangzhou678
'''
#如果需要改变的话,可以如下:另外赋值给一个变量
df1.index=df1.index.map(str.upper)
print(df1)#这样就改变了
'''
abc
BEIJING012
SHANGHAI345
GUANGZHOU678
'''
#更快捷的方法使用rename,可以分别为index和column来指定值
#使用map的方式来赋值
df2=df1.rename(index=str.lower,columns=str.upper)#这种方法照样是产生一个新的dataframe
print(df2)
'''可以很轻松的修改dataframe的index和columns
ABC
beijing012
shanghai345
guangzhou678
'''
#同时,rename还可以传入字典
df3=df2.rename(index={'beijing':'bj'},columns={'A':'aa'})#为某个index单独修改名称
print(df3)#
'''
aaBC
bj012
shanghai345
guangzhou678
'''
#自定义map函数
deftest_map(x):
returnx+'_ABC'
print(df1.index.map(test_map))
#输出Index(['BEIJING_ABC','SHANGHAI_ABC','GUANGZHOU_ABC'],dtype='object')
print(df1.rename(index=test_map))
'''
abc
BEIJING_ABC012
SHANGHAI_ABC345
GUANGZHOU_ABC678
'''
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。