如何在Pandas中创建带有主列标题的子列
Pandas 修改DataFrame列名实现方案
当然可以用Pandas实现列名修改,根据你需要修改的具体场景,以下是几种常用方案:
1. 直接替换全部列名
如果需要一次性替换所有列名,直接将新列名列表赋值给df.columns即可:
import pandas as pd # 示例原始DataFrame df = pd.DataFrame({'Col_01': [1, 2, 3], 'Col_02': [4, 5, 6], 'Col_03': [7, 8, 9]}) # 替换为新列名 df.columns = ['新列名1', '新列名2', '新列名3']
2. 批量修改部分列名
如果只需要修改部分列名,使用rename()方法传入列名字典映射,支持原地修改(设置inplace=True):
# 修改指定列名 df.rename(columns={'Col_01': '用户ID', 'Col_03': '消费金额'}, inplace=True)
3. 处理多级列名(MultiIndex)
如果你的DataFrame是多级表头(比如附图是双层/多层列名),可以针对层级单独修改或合并层级:
# 示例多级列名DataFrame df = pd.DataFrame( [[10, 20, 30, 40]], columns=pd.MultiIndex.from_tuples([('基础信息', '年龄'), ('基础信息', '性别'), ('交易数据', '订单量'), ('交易数据', '金额')]) ) # 修改某一层级的列名 df.columns = df.columns.set_levels(['个人信息', '交易详情'], level=0) # 合并多级列为单级列名(用下划线连接) df.columns = ['_'.join(col) for col in df.columns.values]
4. 按规则批量修改列名
如果需要按特定规则(如添加前缀后缀、正则替换)修改,可以结合列表推导或字符串方法:
# 给所有列名添加前缀 df.columns = ['前缀_' + col for col in df.columns] # 正则替换列名中的特定字符(比如替换数字为中文序号) df.columns = df.columns.str.replace('Col_0(\d)', lambda x: f'列{x.group(1)}')
内容的提问来源于stack exchange,提问作者Adarsh
相关产品推荐
相关产品推荐

