如何基于行列值重构pandas DataFrame,获取每个Title下无重复的Items
实现代码
import pandas as pd # 构造原始DataFrame data = { 'Title': ['001C', '001C', '004C', '001C', '004C', '004C', '007C', '010C'], 'Items': ['A', 'B', 'D', 'A', 'A', 'K', 'L', 'M'] } df = pd.DataFrame(data) # 核心处理逻辑 # 1. 先去重,保留每个Title下唯一的Items值 df_unique = df.drop_duplicates(subset=['Title', 'Items']) # 2. 按Title分组,将对应唯一Items转为列表后展开为Series,转置后得到目标结构 result = df_unique.groupby('Title')['Items'].apply(list).apply(pd.Series).T # 3. 把NaN替换为空字符串,贴合你需要的输出效果 result = result.fillna('') print(result)
逻辑说明
- 去重步骤:过滤同一个Title下重复的Items条目,比如原数据中001C对应的两个A,去重后只会保留1个
- 分组转换步骤:将每个Title对应的所有唯一Items转为独立列,转置后自动以Title作为列名,长度不够的位置默认补NaN
- 空值替换是可选操作,如果你需要保留NaN值可以省略最后一步
内容的提问来源于stack exchange,提问作者user2110417
相关产品推荐
相关产品推荐

