如何按下划线分割DataFrame索引并新增列分离分类前缀
分割DataFrame索引并新增分类列
需求说明
现有DataFrame的索引格式为分类标识_后缀内容,需要按下划线分割索引,将分类标识与剩余文本分离为新列。
示例DataFrame构造
import pandas as pd data = { 'column1': ['abc', 'abc', 'abc'], 'column2': ['abc', 'abc', 'abc'] } df = pd.DataFrame(data, index=['catA_gas', 'catB_green', 'catA_apple'])
解决方案
使用pandas.Series.str.split()方法,设置n=1确保仅按第一个下划线分割(避免后缀含下划线时被多次拆分),并通过expand=True将分割结果展开为两列:
# 分割索引,新增分类列与后缀列 df[['category', 'suffix']] = df.index.str.split('_', n=1, expand=True)
处理后结果
| column1 | column2 | category | suffix | |
|---|---|---|---|---|
| catA_gas | abc | abc | catA | gas |
| catB_green | abc | abc | catB | green |
| catA_apple | abc | abc | catA | apple |
可选:将分割结果存入单列
如果需要将分类标识与后缀存入同一列(以列表形式),可使用:
df['split_result'] = df.index.str.split('_', n=1).tolist()
内容的提问来源于stack exchange,提问作者Kas
相关产品推荐
相关产品推荐

