【问题标题】:pandas groupby to charts via matplotlib and seaborn通过 matplotlib 和 seaborn 将 pandas groupby 转换为图表
【发布时间】:2020-08-16 22:52:43
【问题描述】:

如何将单个图表(趋势线)中的以下数据转换为名称

name                     month   
x                        April       80.0
                         February    88.0
                         January     82.0
                         March       48.0
y                        April       77.0
                         February    76.0
                         January     80.0
                         March       82.0
z                        April       86.0
                         February    81.0
                         January      NaN
                         March       85.0

【问题讨论】:

    标签: pandas matplotlib pandas-groupby seaborn


    【解决方案1】:

    使用Series.unstack 进行整形,然后将列转换为CategoricalIndex 并排序以获得正确的顺序,最后按DataFrame.plot 绘制:

    months = ['January','February','March','April',
              'May','June','July','August',
              'September','October','November','December']
    
    #your groupby code
    #s = df.groupby(...)
    df = s.unstack()
    df.columns = pd.CategoricalIndex(df.columns, ordered=True, categories=months)
    df = df.sort_index(axis=1)
    print (df)
    month  January  February  March  April
    name                                  
    x         82.0      88.0   48.0   80.0
    y         80.0      76.0   82.0   77.0
    z          NaN      81.0   85.0   86.0
    

    如果想要交换列和索引值:

    months = ['January','February','March','April',
              'May','June','July','August',
              'September','October','November','December']
    
    #your groupby code
    #s = df.groupby(...)
    df = s.unstack(0)
    df.index = pd.CategoricalIndex(df.index, ordered=True, categories=months)
    df = df.sort_index()
    print (df)
    name         x     y     z
    month                     
    January   82.0  80.0   NaN
    February  88.0  76.0  81.0
    March     48.0  82.0  85.0
    April     80.0  77.0  86.0
    

    df.plot()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-30
      • 2017-01-12
      • 2022-12-01
      • 2020-09-10
      • 2016-06-07
      • 2019-09-20
      • 2021-11-14
      相关资源
      最近更新 更多