如何使用Pandas按单列分组 实现同组重复值仅首行显示后导出Excel
问题原因
- 你调用
df.groupby("username")仅生成了分组对象,没有对原始DataFrame的内容做任何修改,直接导出原DataFrame自然不会有变化 - GroupBy对象的
groups属性仅返回分组和对应行索引的映射关系,不会修改原有数据结构
实现方案
你可以通过duplicated()方法快速标记重复用户名,将重复值替换为空后再导出,代码如下:
import pandas as pd # 可选:如果原始数据中相同用户名不连续,先排序保证同组数据相邻 df = df.sort_values('username').reset_index(drop=True) # 重复用户名替换为空,仅保留每组第一个 df['username'] = df['username'].mask(df['username'].duplicated(), '') # 导出到Excel with pd.ExcelWriter('user_places.xlsx') as writer: df.to_excel(writer, sheet_name="Users Places", index=False, startrow=1)
这个方法不需要遍历分组,执行效率更高,最终导出的Excel就会呈现你需要的效果。
内容的提问来源于stack exchange,提问作者user001
相关产品推荐
相关产品推荐

