【问题标题】: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

我想要达到的目标:

  1. Groupby[col1, col2]

  2. 获取每个的大小

  3. 使用选择的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"])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-28
      • 2021-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-01
      • 2019-06-08
      • 1970-01-01
      相关资源
      最近更新 更多