更改列表中列的大小写

Dre*_*ead 2 python pandas

如何更改列表中数据框列的大小写?我知道如何使所有列大写,但我不知道如何仅使特定列大写。

d = {'name':['bob','john','sue'],'id':[545,689,143],'fte':[1,.5,.75]}
df = pd.DataFrame(d)
# list of columns I want to make upper case
cols = ['id','fte']
Run Code Online (Sandbox Code Playgroud)

这什么也没做(没有错误,大小写没有改变):

df[cols].rename(str.upper,axis=1,inplace=True)
df


    name    id  fte
0   bob     545     1.00
1   john    689     0.50
2   sue     143     0.75
Run Code Online (Sandbox Code Playgroud)

yat*_*atu 5

它不会像您尝试的那样工作,原因是索引支持可变操作。因此,您可以做的一件事是使用列表推导生成一个新的列名列表,然后将其重新分配给df.columns

df.columns = [i.upper() if i in cols else i for i in df.columns]
print(df.columns)
# Index(['name', 'ID', 'FTE'], dtype='object')
Run Code Online (Sandbox Code Playgroud)