You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Pandas将用户每5条Tweet合并为一行并保留用户信息

解决按用户分组合并每5条Tweet并保留用户信息的问题

你的核心问题是之前的分组方式是全局按索引每5条聚合,会把不同用户的Tweet混在一起,而且没有关联userid和gender信息。正确的做法是先按用户分组,再在每个用户内部划分每5条的组,最后聚合时保留用户属性。

完整实现代码

# 为每个用户的Tweet生成组内分组标识:每5条为一组
df['group_key'] = df.groupby('userid').cumcount() // 5

# 按用户ID+组标识分组,合并Tweet并保留性别信息
df_merged = df.groupby(['userid', 'group_key'], as_index=False).agg(
    gender=('gender', 'first'),  # 同一用户gender唯一,取任意值即可
    merged_tweet=('tweet', ' '.join)
)

代码说明

  1. 生成组内分组键:groupby('userid').cumcount()会为每个用户的Tweet从0开始顺序编号,//5将编号每5个归为同一组(比如0-4对应组0,5-9对应组1,直到19,正好每个用户生成20组)。
  2. 分组聚合:同时按userid和group_key分组,确保每个用户的分组独立;聚合时用first获取gender(同一用户的gender不会变化),用' '.join拼接同组的5条Tweet。

这样处理后,每个用户会对应20行数据,每行包含userid、gender和合并后的5条Tweet内容。

内容的提问来源于stack exchange,提问作者matin zarei

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 14:45:40