如何提取Python pandas DataFrame单列内的分组信息生成单独分组列
实现代码
import pandas as pd # 初始DataFrame,对应你读取Excel得到的结构 df = pd.DataFrame({'Accessory Description':['GROUP1','item1', 'item2','item3','item4','item5','GROUP2','item6','item7','item8' ,'item9','item10','GROUP3','item11','item12','item13','item14','item15']}) # 生成Group列:仅保留GROUP开头的分组名,其余值置空后向前填充 df['Group'] = df['Accessory Description'].where(df['Accessory Description'].str.startswith('GROUP')).ffill() # 调整分组名格式为要求的Group1样式 df['Group'] = df['Group'].str.replace('GROUP', 'Group') # 过滤掉原始分组行,调整列顺序后重置索引 result = df[~df['Accessory Description'].str.startswith('GROUP')][['Group', 'Accessory Description']].reset_index(drop=True)
逻辑说明
where方法会把不符合「GROUP开头」条件的行取值设为NaN,仅保留分组行的分组名称ffill()向前填充会让所有item行自动匹配到离自己最近的上层分组名称- 最后过滤掉原始的分组行、调整列顺序重置索引,即可得到你需要的目标结构
内容的提问来源于stack exchange,提问作者Elliott Davey
相关产品推荐
相关产品推荐

