Python pandas中使用自定义函数重命名DataFrame列名的实现方法
实现方法
你现有的自定义函数可以直接配合map()使用,不需要手动单独引用单个列名,map()会自动遍历每一个列名,依次传入处理函数完成批量修改。
完整实现示例
import pandas as pd # 构造示例DataFrame,替换为你自己的DataFrame对象即可 df = pd.DataFrame(columns=['AH_AP','AH_AS','XX_YY']) # 你自定义的列名处理函数,参数名调整为col_name更符合语义,不修改也不影响正常运行 def rejig_col_names(col_name): elements_of_header = col_name.split('_') new_title = elements_of_header[-1] + "_" + elements_of_header[0] return new_title # 批量应用函数修改列名,直接赋值即可生效 df.columns = df.columns.map(rejig_col_names)
更简洁的简写方式
如果不想单独定义处理函数,也可以直接用lambda表达式实现相同效果:
# 适配2段分隔的列名 df.columns = df.columns.map(lambda x: x.split('_')[1] + '_' + x.split('_')[0]) # 通用写法,适配下划线分隔部分大于2的场景,直接反转所有分隔片段后拼接 df.columns = df.columns.map(lambda x: '_'.join(x.split('_')[::-1]))
补充说明
如果修改前想先预览效果,避免改错,可以先执行打印命令查看处理后的列名:
print(df.columns.map(rejig_col_names))
确认输出符合预期后再执行赋值操作即可。
内容的提问来源于stack exchange,提问作者GlassShark1
相关产品推荐
相关产品推荐

