如果Python Pandas中的DataFrame中存在列表中的列,如何将DataFrame中除列表中的列之外的所有列都提升?

q3aa0525  于 2023-03-28  发布在  Python
关注(0)|答案(1)|浏览(128)

我在Python Pandas中有DataFrame,如下所示(我真实的DF有更多的列):

输入数据:

COL1  | col2   | col3
------|--------|-------
 X    | 11     | 2021
 Y    | 22     | 1990

要求:

如果列表中的列存在,我需要在DataFrame中设置每个列的名称,除了列表中的列名称:

list_not_to_up = ["col2", "col55"]

我的密码是:

df.columns = [x.upper() if x not in df[list_not_to_up].columns else x for x in df.columns]

但我有一个错误:KeyError: "['col55'] not in index"

所需产出:

COL1  | col2   | COL3
------|--------|-------
 X    | 11     | 2021
 Y    | 22     | 1990

如何修改我的代码,以便在Python Pandas中的DataFrame中存在列表中的列的情况下,将DataFrame中除列表中的列之外的所有列都放在上面?

jk9hmnmh

jk9hmnmh1#

你可以在列difference上尝试rename

df.rename(columns={c: c.upper() for c in df.columns.difference(list_not_to_up)})

输出:

COL1  col2  COL3
0    X    11  2021
1    Y    22  1990

相关问题