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 '''
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。