La mejor manera de generar diagtwigs de caja del día de la semana a partir de una serie temporal de Pandas

estoy tratando de crear un conjunto de diagtwigs de caja del día de la semana para una serie temporal (por ejemplo, observaciones de temperatura de 5 minutos).

Mi código:

# ts is our timeseries ts = df.SomeColumn dow_map = {} days = ['MON','TUE','WED','THU','FRI','SAT','SUN'] dow_idx = ts.index.dayofweek i = 0 for d in days: dow_map[d] = ts[dow_idx == i] i = i + 1 df = pd.DataFrame(dow_map) df.boxplot() 

resultados en:

 --------------------------------------------------------------------------- Exception Traceback (most recent call last)  in () 41 i = i + 1 42 ---> 43 df = pd.DataFrame(dow_map) 44 df.boxplot() ... Exception: Reindexing only valid with uniquely valued Index objects 

Encontré éxito creando DataFrames para cada día de la semana y luego concatándolos en un DataFrame final, pero esto parece ineficaz …

    1er dataframe Crear y usar el método de días de la semana para obtener días de la semana:

     import pandas as pd import numpy.random as random n=1000 df = pd.DataFrame(random.randn(n), pd.date_range('2010-01-01', periods=n), columns=["data"]) df['Dates'] = df.index df['week_days'] =df.index.weekday df 

    ahora gire esa tabla para que los días de la semana sean como columnas (también podría cambiar los días de necesidad a los formatos de cadena de días, pero dejar eso para usted).

     x =df.pivot(index='Dates', columns='week_days', values='data') x.boxplot() 

    introduzca la descripción de la imagen aquí

     import locale, calendar # for example pl_PL locale.setlocale(locale.LC_ALL, 'pl_PL.UTF-8') x = x.rename_axis(lambda x: calendar.day_abbr[x].capitalize())