如何修复Pandas蛇形命名列转小驼峰命名的代码问题
修复Pandas大写蛇形列名转小驼峰命名的问题
你的代码问题出在最后一步替换首字母的逻辑:转小写后的列名col的首字母是小写,但经过title()处理后的字符串首字母是大写,用小写的col[0]去替换大写的首字母,根本找不到匹配项,所以首字母还是保持大写。
修复后的代码
import pandas as pd # Sample DataFrame with column names data = {'RID': [1, 2, 3], 'RUN_DATE': ['2023-01-01', '2023-01-02', '2023-01-03'], 'PRED_VOLUME_NEXT_360': [100, 150, 200]} df = pd.DataFrame(data) # 转换为首字母小写的小驼峰命名 df.columns = [ # 分割单词:第一个全小写,后续单词首字母大写 parts[0].lower() + ''.join(part.capitalize() for part in parts[1:]) for parts in [col.split('_') for col in df.columns] ] print(df)
代码说明
- 先将每个列名按下划线
_分割成单词列表,比如RUN_DATE会被拆分为["RUN", "DATE"] - 第一个单词直接转全小写,得到
"run" - 后续每个单词用
capitalize()处理(首字母大写、其余字母小写),比如"DATE"变成"Date" - 把所有部分拼接起来,最终得到
"runDate"这种小驼峰格式
另一种实现方式(先统一转小写再处理)
如果更习惯先把所有列名转小写,也可以用下面的写法,效果完全一致:
df.columns = [ parts[0] + ''.join(part.title() for part in parts[1:]) for parts in [col.split('_') for col in df.columns.str.lower()] ]
内容的提问来源于stack exchange,提问作者bunti papu
相关产品推荐
相关产品推荐

