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

如何按日期分组获取数据框行数并绘制每日推文数量直方图?

按日期分组统计每日推文数量并绘制直方图

我来帮你搞定这个需求!用Pandas就能轻松实现按日期分组统计行数,之后再用Matplotlib或Seaborn画直方图就行,具体步骤如下:

1. 确保日期列是datetime类型

首先得确认你的created_at列是Pandas的datetime格式,如果是字符串的话,先做转换:

import pandas as pd

# 转换为datetime类型
df['created_at'] = pd.to_datetime(df['created_at'])

如果你的日期带时区信息,可能需要先统一时区或者移除时区(避免分组时出现异常):

# 移除时区信息(如果不需要时区的话)
df['created_at'] = df['created_at'].dt.tz_localize(None)

2. 按日期分组统计推文数量

有两种常用方法来实现分组统计:

方法一:用groupby+dt.date

提取created_at的日期部分,然后分组统计每组的行数:

# 按日期分组,统计每日推文数量
daily_tweets = df.groupby(df['created_at'].dt.date).size().reset_index(name='tweet_count')
# 重命名日期列(可选,让列名更清晰)
daily_tweets.rename(columns={'created_at': 'date'}, inplace=True)

这里size()用来统计每组的行数,reset_index()把分组后的索引转为普通列,方便后续绘图。

方法二:用resample(适合时间序列场景)

如果把created_at设为数据框的索引,用resample按天重采样会更简洁:

# 设置日期为索引
df = df.set_index('created_at')
# 按天重采样,统计每日行数
daily_tweets = df.resample('D').size().reset_index(name='tweet_count')
daily_tweets.rename(columns={'created_at': 'date'}, inplace=True)

3. 绘制每日推文数量直方图

拿到统计后的daily_tweets数据框,就可以画图了,这里提供两种常见的绘图方式:

用Matplotlib绘制

import matplotlib.pyplot as plt

plt.figure(figsize=(12, 6))
# 绘制柱状图(适合展示每日数值的直方图形式)
plt.bar(daily_tweets['date'], daily_tweets['tweet_count'], color='#1DA1F2')
plt.xlabel('日期', fontsize=12)
plt.ylabel('每日推文数量', fontsize=12)
plt.title('每日推文数量分布', fontsize=14, pad=20)
# 旋转x轴标签避免重叠
plt.xticks(rotation=45, ha='right')
# 自动调整布局
plt.tight_layout()
plt.show()

用Seaborn绘制(风格更美观)

import seaborn as sns

plt.figure(figsize=(12, 6))
sns.barplot(data=daily_tweets, x='date', y='tweet_count', color='#1DA1F2')
plt.xlabel('日期', fontsize=12)
plt.ylabel('每日推文数量', fontsize=12)
plt.title('每日推文数量分布', fontsize=14, pad=20)
plt.xticks(rotation=45, ha='right')
plt.tight_layout()
plt.show()

这样就能得到清晰的每日推文数量直方图啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 16:07:46