更改列名称有两种方式:
df1=pd.DataFrame({'id':[1,2,3,4],'name':['aa','bb','cc','dd'],'class':[1,1,2,2]})
id name class 0 1 aa 1 1 2 bb 1 2 3 cc 2 3 4 dd 2
方法一:
使用rename函数更改列名
df2=df1.rename(columns={'name':'stu_name','class':'stu_class'})
print(df2)
或者
df1.rename(columns={'name':'stu_name','class':'stu_class'},inplace=True)
print(df1)
两者效果一样,不同之处是参数inplace的值:
inplace为False表示不改变原有df,返回新的复制的df
inplace为True表示在原有df上改变列名字,不会复制出新的df
不指定inplace则默认为False
方法二:
直接更改全部的列名称
df1.columns=['id','stu_name','stu_class']
这种方式需要将全部列名列出,作为list列表类型返回给df1.columns
如果只列出更改的列名,则会报错
列名的顺序必须和df原来的顺序保持一致,不能错乱
如下是rename函数源码中给的例子
>>> df = pd.DataFrame({"A": [1, 2, 3], "B": [4, 5, 6]})
>>> df.rename(str.lower, axis='columns')
a b
0 1 4
1 2 5
2 3 6
>>> df.rename({1: 2, 2: 4}, axis='index')
A B
0 1 4
2 2 5
4 3 6
>>> df.rename(index=str, columns={"A": "a", "B": "c"})
a c
0 1 4
1 2 5
2 3 6
>>> df.rename(index=str, columns={"A": "a", "C": "c"})
a B
0 1 4
1 2 5
2 3 6