【发布时间】:2022-09-24 05:43:50
【问题描述】:
我有一个大约 1000 个推文 ID 的 Pandas df,它们的生命周期以秒为单位(生命周期是第一次和最后一次转发之间的时间距离)。下面是我的 df 的一个子集的头部:
| tweet_id | lifetime(timedelta) | lifetime(hours) | type1 | type2 | type3 | type4 |
|---|---|---|---|---|---|---|
| 329664 | 0 days 05:27:22 | 5.456111 | 1 | 0 | 0 | 0 |
| 722624 | 0 days 12:43:43 | 12.728611 | 1 | 1 | 0 | 0 |
| 866498 | 2 days 09:00:28 | 57.007778 | 0 | 1 | 1 | 0 |
| 156801 | 0 days 03:01:29 | 3.024722 | 1 | 0 | 0 | 0 |
| 941440 | 0 days 06:39:58 | 6.666111 | 0 | 1 | 1 | 1 |
注1:tweets\' 生命周期显示在两列中(列具有不同的 dtypes):
-
lifetime(timedelta)列以 timedelta64[ns] 格式显示推文的生命周期, - 列
lifetime(hours)显示推文的生命周期(以小时为单位)(float64 类型)。我通过使用以下方式从生命周期(timedelta)列中提取小时数来创建第 2 列:df[\'lifetime_hours\'] = df[\'lifetime(timedelta)\'] / np.timedelta64(1, \'h\')笔记2:一条推文可以属于多个类型。例如,tweet id:329664 只是 type1,而 tweet id:722624 是 type1 和 type2。
我想绘制不同类型推文的推文寿命分布。我可以绘制推文的生命周期分布如下(对于所有推文): 这是条形图:
以下是我如何创建上述图(例如,条形图):
bins = range(0, df[\'lifetime_hours\'].max().astype(int), 3) data = pd.cut(df[\'lifetime_hours\'], bins, include_lowest=True) from matplotlib.pyplot import figure plt.figure(figsize=(20,4)) data.value_counts().sort_index().plot(kind=\'bar\') plt.xlabel(\'Tweets Lifetime(hours)\') plt.ylabel(\'Number of Tweets Active\') plt.title(\'Distribution of Tweets lifetime\')如何在一个图中绘制两种类型的推文的生命周期分布?
标签: python pandas matplotlib seaborn visualization