Python 替换列标题-熊猫

Python 替换列标题-熊猫,python,pandas,Python,Pandas,我的目标是在一个文档中替换列标题。特别是,我想更改以\u Item结尾的列。此时,这些列标题的开头以组A或组B中的任何字符串开头。但这些字符串将随每个新数据集而变化。因此,我希望用组A或组B替换适当的字符串值 目前,我正在手动替换列标题,但如果列未排序,则此操作不起作用 df = pd.DataFrame({ 'Group_A' : ['Red','Red','Red','Red','Red','Red'],

我的目标是在一个文档中替换列标题。特别是,我想更改以
\u Item
结尾的列。此时,这些列标题的开头以
组A
组B
中的任何字符串开头。但这些字符串将随每个新数据集而变化。因此,我希望用
组A
组B
替换适当的字符串值

目前,我正在手动替换列标题,但如果列未排序,则此操作不起作用

df = pd.DataFrame({        
    'Group_A' : ['Red','Red','Red','Red','Red','Red'],                                   
    'Group_B' : ['Blue','Blue','Blue','Blue','Blue','Blue'],       
    'Blue_Item' : ['2','4','6','8','10','12',],                              
    'Red_Item' : ['1','2','3','4','5','6',],                                                          
    })

df.columns = [*df.columns[:-2], 'Group_A_Item','Group_B_Item']
预期产出:

df = pd.DataFrame({        
    'Group_A' : ['Red','Red','Red','Red','Red','Red'],                                   
    'Group_B' : ['Blue','Blue','Blue','Blue','Blue','Blue'],       
    'Group_B_Item' : ['2','4','6','8','10','12',],                              
    'Group_A_Item' : ['1','2','3','4','5','6',],                                                          
    })

只需使用
重命名
方法即可。要使用它,请提供一个
dict
,其中key是当前名称,关联的key是您要替换的名称。dict中未出现的所有列名称保持不变。这将在您的案例中提供以下代码:

df=pd.DataFrame({
‘A组’:[‘红’、‘红’、‘红’、‘红’、‘红’、‘红’、‘红’],
‘B组’:[‘蓝’、‘蓝’、‘蓝’、‘蓝’、‘蓝’、‘蓝’、‘蓝’],
“蓝色”项目:[2'、'4'、'6'、'8'、'10'、'12'、],
“红色项目”:['1'、'2'、'3'、'4'、'5'、'6'、],
})
df=df.rename(列={'Blue_Item':'Group_B_Item','Red_Item':'Group_A_Item'})
这样,重命名不依赖于列顺序

请在中查找更多信息

由于您特别希望动态重命名列(您说过要用
组A
组B
替换相应的字符串),因此您仍然可以编写一个方法来动态构建字典,以提供给重命名方法