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

Input data:

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

Requirements:

如果存在List中的列,我需要在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"

Desire output:

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

如果在Python Pandas中的DataFrame中当然存在List中的列,那么如何修改我的代码以使DataFrame中除List中的列之外的所有列都位于上方?

推荐答案

您可以try 在列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

Python相关问答推荐

DuckDB将蜂巢分区插入拼花文件

Python 3.12中的通用[T]类方法隐式类型检索

非常奇怪:tzLocal.get_Localzone()基于python3别名的不同输出?

如何在Windows上用Python提取名称中带有逗号的文件?

海运图:调整行和列标签

将输入管道传输到正在运行的Python脚本中

什么相当于pytorch中的numpy累积ufunc

try 将一行连接到Tensorflow中的矩阵

如何创建一个缓冲区周围的一行与manim?

如何将多进程池声明为变量并将其导入到另一个Python文件

索引到 torch 张量,沿轴具有可变长度索引

我的字符串搜索算法的平均时间复杂度和最坏时间复杂度是多少?

如何在达到end_time时自动将状态字段从1更改为0

基于Scipy插值法的三次样条系数

Gekko中基于时间的间隔约束

使用Python异步地持久跟踪用户输入

如何设置nan值为numpy数组多条件

Django抛出重复的键值违反唯一约束错误

类型对象';敌人';没有属性';损害';

一维不匹配两个数组上的广义ufunc