Pandas DataFrame分组列重复值合并及ReportLab PDF输出问题
处理DataFrame重复Token列以适配ReportLab PDF输出
针对你需要将重复的Token值仅在每组中间行保留、其余行留空的需求,可以通过分组+transform的方式实现:
1. 原DataFrame定义
import pandas as pd df = pd.DataFrame({'Token' : ['a','a','a','b','b','b','c','c','c'], 'value1' : ['abc','def','ghi','jkl','mno','pqr','stu','vwx','xyz'], 'value2' :['aaa','bbb','ccc','ddd','eee','fff','ggg','hhh','iii']})
2. 格式化处理代码
# 复制原数据,避免修改原始DataFrame df_formatted = df.copy() # 分组后仅保留每组中间行的Token值,其余行设为空字符串 df_formatted['Token'] = df.groupby('Token')['Token'].transform( lambda x: x.where(x.index == x.index[1], '') ) # 查看结果 print(df_formatted)
3. 输出结果
Token value1 value2 0 abc aaa 1 a def bbb 2 ghi ccc 3 jkl ddd 4 b mno eee 5 pqr fff 6 stu ggg 7 c vwx hhh 8 xyz iii
扩展说明
如果后续每组行数不固定,需要改为仅保留每组首次出现的Token值,可以替换为以下代码:
df_formatted['Token'] = df['Token'].where(df['Token'] != df['Token'].shift(1), '')
内容的提问来源于stack exchange,提问作者Vishal
相关产品推荐
相关产品推荐

