如何通过空格分割批量重命名Pandas DataFrame列名
批量重命名DataFrame列名(按空格分割取后半部分)
问题描述
我有如下所示的DataFrame:
index col A col B col C index1 3 1 2 index2 1 4 9 index3 5 1 2 index4 8 2 2 index5 2 1 6
希望通过空格分割的方式重命名列名(取空格后的部分),由于列数很多不想手动操作,期望得到的输出如下:
index A B C index1 3 1 2 index2 1 4 9 index3 5 1 2 index4 8 2 2 index5 2 1 6
解决方案
可以用Pandas的字符串处理方法批量完成,提供两种实用写法:
写法一(适合所有目标列都含且仅含一个空格)
import pandas as pd # 假设你的DataFrame变量名为df df.columns = df.columns.str.split(' ', expand=True).get_level_values(1)
写法二(兼容部分列名无空格的情况)
import pandas as pd # 遍历列名,有空格则取分割后最后一段,无空格则保留原名 df.columns = [col.split(' ')[-1] if ' ' in col else col for col in df.columns]
说明
- 写法一通过
str.split将列名拆分为多级索引,直接提取第二部分,操作简洁高效。 - 写法二用列表推导式做判断处理,适配更复杂的列名场景,避免无空格列名出现异常。
内容的提问来源于stack exchange,提问作者Yash
相关产品推荐
相关产品推荐

