如何在pandas dataframe中按日期对推文文本列进行分组?
实现方法
你可以用pandas的groupby搭配聚合操作实现该需求,步骤如下:
- 先预处理日期列,确保按自然日分组(如果你的原始日期列带时分秒,需要先提取日期部分,避免同一日不同时间的内容被分到不同组):
import pandas as pd # 将日期列转为datetime类型后提取纯日期,过滤掉时分秒的影响 df['发布日期'] = pd.to_datetime(df['发布日期']).dt.date
- 按需求选择聚合方式:
场景1:同天推文存为列表
适合后续需要单独处理每一条推文的场景:
# 按发布日期分组,将同天的所有推文聚合为列表 grouped_df = df.groupby('发布日期')['推文内容列名'].agg(list).reset_index()
场景2:同天推文合并为单个字符串
适合直接查看或导出文本的场景,可以自定义分隔符(如下示例用换行符分隔):
grouped_df = df.groupby('发布日期')['推文内容列名'].agg(lambda x: '\n'.join(x)).reset_index()
场景3:同时聚合多个字段
如果需要保留其他统计信息,可以同时对多列做不同的聚合操作:
grouped_df = df.groupby('发布日期').agg( 当日所有推文=('推文内容列名', list), 当日总点赞量=('点赞数列名', 'sum'), 当日推文总数=('推文id列名', 'count') ).reset_index()
内容的提问来源于stack exchange,提问作者Gustavo Figueiredo
相关产品推荐
相关产品推荐

