【问题标题】:Pandas Dataframe Grouping data on weekly basis - Plotly LibraryPandas Dataframe 每周对数据进行分组 - Plotly 库
【发布时间】:2020-06-09 01:01:26
【问题描述】:
我有一个看起来像这样的 Pandas 数据框-
ID |发表日期 |主题
1 |2020-03-11 |法律
2 |2020-03-16 |住房
3 |2020-03-18 |住房
4 |2020-04-06 |法律
5 |2020-04-08 |税收
Published Date是一个 datetime64[ns] 列。
我想在 Plotly 时间序列线图中显示 每个主题的每周出版量(按主题分组的每周出版数量)。
我不确定在使用 Plotly 之前是否应该对数据进行分组,或者 Plotly 具有可以帮助我这样做的功能。
任何帮助将不胜感激。
【问题讨论】:
标签:
python
pandas
plotly
plotly-python
【解决方案1】:
如果您将 Published Date 列作为 DateTime 列,则可以执行以下操作:
# create new column with week-of-year value
df['Week'] = df['Published Date'].dt.week
# groupby week + topic (or vise-versa)
gb = df.groupby(['Week', 'Topic']
volume = gb.size()
这将为您提供最终的 DataFrame,显示每周主题分组的大小(每组的行数)。
如果您的列不是 DateTime 格式,只需在列上使用pd.to_datetime 将其转换为(docs)。