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()
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())