You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Pandas DataFrame列名从驼峰式转为大写蛇形命名

解决Pandas列名驼峰转蛇形大写的问题

要把驼峰式(比如evaluationId)的列名转换成下划线分隔的大写格式(EVALUATION_ID),只靠转大写不够,得先处理驼峰的分隔,这里给你两种简洁的实现方式:

方法一:正则表达式+自定义函数

import re
import pandas as pd

# 示例DataFrame
df = pd.DataFrame(columns=['evaluationId', 'createdAt', 'scheduleEndDate', 'sharedTo'])

def camel_to_snake_upper(col):
    # 在非开头的大写字母前插入下划线
    snake_col = re.sub(r'(?<!^)(?=[A-Z])', '_', col)
    return snake_col.upper()

# 批量重命名列
df.columns = [camel_to_snake_upper(col) for col in df.columns]

方法二:Pandas链式调用(更简洁)

直接利用Pandas的字符串处理方法,一行代码搞定:

df.columns = df.columns.str.replace(r'(?<!^)(?=[A-Z])', '_', regex=True).str.upper()

如果你的列名包含特殊字符,需要保留之前用的unidecode处理,可以这样整合:

from unidecode import unidecode

df.columns = df.columns.map(unidecode).str.replace(r'(?<!^)(?=[A-Z])', '_', regex=True).str.upper()

效果验证

处理后你的列名会从['evaluationId', 'createdAt', 'scheduleEndDate', 'sharedTo']变为['EVALUATION_ID', 'CREATED_AT', 'SCHEDULE_END_DATE', 'SHARED_TO'],完全符合需求。

内容的提问来源于stack exchange,提问作者Leandro Miranda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 13:35:22