如何将Pandas DataFrame的元组格式多级列名转换为单级列名?
Pandas多级元组列名转单个字符串的优化实现
问题描述
我有一个Pandas DataFrame,其列名为元组格式的多级列名,希望将这些列名转换为单个字符串。目前已实现一种方法,但想寻找更符合Python风格的最优方案:
new_column_names = ( list( map( '_'.join, df.columns, ) ) ) df.columns = new_column_names
优化实现方法
1. 列表推导式(Pythonic首选)
用列表推导式替代map+list的组合,代码更直观易读,是Python处理这类转换的常用风格:
df.columns = ['_'.join(col_tuple) for col_tuple in df.columns]
2. 利用Pandas Index的内置map方法
直接对df.columns(Pandas的Index对象)调用map方法,无需额外转列表(Pandas允许直接将处理后的Index赋值给df.columns):
df.columns = df.columns.map('_'.join)
这两种方式都比原代码更简洁高效,其中列表推导式可读性更强,而Index.map则更贴合Pandas的API设计,执行效率更优。
内容的提问来源于stack exchange,提问作者user2138149
相关产品推荐
相关产品推荐

