如何更改列表中数据框列的大小写?我知道如何使所有列大写,但我不知道如何仅使特定列大写。
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']
这什么都不做(没有错误,大小写没有改变):
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
答案 0 :(得分: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')
答案 1 :(得分:4)
IIUC
df.rename(columns=dict(zip(cols,list(map(str.upper,cols)))))
Out[1135]:
name ID FTE
0 bob 545 1.00
1 john 689 0.50
2 sue 143 0.75
答案 2 :(得分:2)
您还可以按以下方式使用public static void main(String[] args) {
File f = new File("Test.txt");
try {
Scanner s = new Scanner(f);
StringBuilder l = null;
while (s.hasNextLine())
System.out.println(l.append(s.nextLine()));
} catch (FileNotFoundException e) {
System.out.println("File not found");
}
}
rename
答案 3 :(得分:0)
首先,您可以创建地图:
# create map manually
col_map = {"id": "ID", "fte": "FTE"}
# or create map automatically
col_map = {item:item.upper() for item in list(df.columns)[1:]}
然后替换列索引:
df = df.rename(columns=col_map)