【问题标题】:Plotly and pandas groupbyPlotly 和 pandas groupby
【发布时间】:2021-07-08 10:33:01
【问题描述】:
我有一个时间序列数据,如下所示:
col1 col2
2000-01-01 00:00:00 A XX
2000-01-01 00:01:00 B YY
2000-01-01 00:02:00 A ZZ
2000-01-01 00:03:00 A XX
2000-01-01 00:04:00 B PP
我想要达到的目标:
-
Groupby[col1, col2]
-
获取每个的大小
-
使用选择的time-span 作为索引在plotly 中绘制结果
col1 col2
A XX 2
ZZ 1
B PP 1
YY 1
基本上用所选日期范围绘制此数据
【问题讨论】:
标签:
pandas
time-series
data-visualization
visualization
【解决方案1】:
- 您要达到的目标的定义是稀疏的。所以我假设了一个 bar 图
- 这是一个简单的案例,将您想要的结果合并回来,然后是一个简单的绘图
import plotly.express as px
df = pd.read_csv(io.StringIO(""" col1 col2
2000-01-01 00:00:00 A XX
2000-01-01 00:01:00 B YY
2000-01-01 00:02:00 A ZZ
2000-01-01 00:03:00 A XX
2000-01-01 00:04:00 B PP"""), sep="\s\s+", engine="python")
df = df.set_index(pd.to_datetime(df.index))
dfp = df.merge(
df.groupby(["col1", "col2"]).size().reset_index().rename(columns={0: "size"}),
on=["col1", "col2"],
).set_index(df.index)
px.bar(dfp, x=dfp.index, y="size", hover_data=["col1", "col2"])