Calcule la media en el marco de datos dada una frecuencia usando pandas

Jvr

Tengo un marco de datos donde los valores se miden cada 30 minutos, como se muestra a continuación:

2015-01-01 00:00:00   94.50
2015-01-01 00:30:00   78.75
2015-01-01 01:00:00   85.87
2015-01-01 01:30:00   85.88
2015-01-01 02:00:00   84.75
2015-01-01 02:30:00   87.50

Entonces, cada día tiene 48 valores. La primera columna es el índice de tiempo creado mediante:

date= pd.date_range( '1/1/2015', periods=len(series),freq='30min' )
series=series.values.reshape(-1,1)
df=pd.DataFrame(series, index=date)

Lo que me gustaría hacer es obtener la media para cada hora del día y día de la semana. Algo como esto:los números del 1 al 7 son el día de la semana

Mi idea inicial era agrupar por día de la semana y frecuencia (30 min.) De la siguiente manera:

df= df.groupby([ df.index.weekday,df.index.freq])
print(df.describe())


       count    mean std     min     25%     50%     75%   
0 2015-01-05 00:30:00   1.0   93.75 NaN   93.75   93.75   93.75   93.75   
  2015-01-05 01:00:00   1.0  110.25 NaN  110.25  110.25  110.25  110.25   
  2015-01-05 01:30:00   1.0  110.88 NaN  110.88  110.88  110.88  110.88   
  2015-01-05 02:00:00   1.0   90.12 NaN   90.12   90.12   90.12   90.12   
  2015-01-05 02:30:00   1.0   91.50 NaN   91.50   91.50   91.50   91.50   
  2015-01-05 03:00:00   1.0   94.13 NaN   94.13   94.13   94.13   94.13   
  2015-01-05 03:30:00   1.0   90.62 NaN   90.62   90.62   90.62   90.62   
  2015-01-05 04:00:00   1.0   91.88 NaN   91.88   91.88   91.88   91.88   
  2015-01-05 04:30:00   1.0   92.50 NaN   92.50   92.50   92.50   92.50   
  2015-01-05 05:00:00   1.0   98.12 NaN   98.12   98.12   98.12   98.12   
  2015-01-05 05:30:00   1.0  105.75 NaN  105.75  105.75  105.75  105.75   
  2015-01-05 06:00:00   1.0  100.50 NaN  100.50  100.50  100.50  100.50   
  2015-01-05 06:30:00   1.0   82.25 NaN   82.25   82.25   82.25   82.25   
  2015-01-05 07:00:00   1.0   81.75 NaN   81.75   81.75   81.75   81.75   
  2015-01-05 07:30:00   1.0   90.50 NaN   90.50   90.50   90.50   90.50   
  2015-01-05 08:00:00   1.0   89.50 NaN   89.50   89.50   89.50   89.50   
  2015-01-05 08:30:00   1.0   89.63 NaN   89.63   89.63   89.63   89.63   
  2015-01-05 09:00:00   1.0   84.62 NaN   84.62   84.62   84.62   84.62   
  2015-01-05 09:30:00   1.0   86.63 NaN   86.63   86.63   86.63   86.63   
  2015-01-05 10:00:00   1.0   96.12 NaN   96.12   96.12   96.12   96.12   
  2015-01-05 10:30:00   1.0  104.13 NaN  104.13  104.13  104.13  104.13   
  2015-01-05 11:00:00   1.0  101.12 NaN  101.12  101.12  101.12  101.12   
  2015-01-05 11:30:00   1.0   85.88 NaN   85.88   85.88   85.88   85.88   
  2015-01-05 12:00:00   1.0   77.12 NaN   77.12   77.12   77.12   77.12   
  2015-01-05 12:30:00   1.0   78.88 NaN   78.88   78.88   78.88   78.88   
  2015-01-05 13:00:00   1.0   76.62 NaN   76.62   76.62   76.62   76.62   
  2015-01-05 13:30:00   1.0   78.63 NaN   78.63   78.63   78.63   78.63   
  2015-01-05 14:00:00   1.0   85.37 NaN   85.37   85.37   85.37   85.37   
  2015-01-05 14:30:00   1.0  103.63 NaN  103.63  103.63  103.63  103.63   
  2015-01-05 15:00:00   1.0  112.87 NaN  112.87  112.87  112.87  112.87   
...                     ...     ...  ..     ...     ...     ...     ...   
6 2016-10-02 09:30:00   1.0   84.75 NaN   84.75   84.75   84.75   84.75   
  2016-10-02 10:00:00   1.0   60.49 NaN   60.49   60.49   60.49   60.49   
  2016-10-02 10:30:00   1.0   76.25 NaN   76.25   76.25   76.25   76.25   
  2016-10-02 11:00:00   1.0   68.13 NaN   68.13   68.13   68.13   68.13   
  2016-10-02 11:30:00   1.0   54.15 NaN   54.15   54.15   54.15   54.15   
  2016-10-02 12:00:00   1.0   79.91 NaN   79.91   79.91   79.91   79.91   
  2016-10-02 12:30:00   1.0   72.79 NaN   72.79   72.79   72.79   72.79   
  2016-10-02 13:00:00   1.0   77.49 NaN   77.49   77.49   77.49   77.49   
  2016-10-02 13:30:00   1.0   77.65 NaN   77.65   77.65   77.65   77.65   
  2016-10-02 14:00:00   1.0   70.44 NaN   70.44   70.44   70.44   70.44   
  2016-10-02 14:30:00   1.0   82.47 NaN   82.47   82.47   82.47   82.47   
  2016-10-02 15:00:00   1.0   41.53 NaN   41.53   41.53   41.53   41.53   
  2016-10-02 15:30:00   1.0   66.65 NaN   66.65   66.65   66.65   66.65   
  2016-10-02 16:00:00   1.0   55.23 NaN   55.23   55.23   55.23   55.23   
  2016-10-02 16:30:00   1.0   59.45 NaN   59.45   59.45   59.45   59.45   
  2016-10-02 17:00:00   1.0   79.92 NaN   79.92   79.92   79.92   79.92   
  2016-10-02 17:30:00   1.0   58.48 NaN   58.48   58.48   58.48   58.48   
  2016-10-02 18:00:00   1.0   92.56 NaN   92.56   92.56   92.56   92.56   
  2016-10-02 18:30:00   1.0   86.92 NaN   86.92   86.92   86.92   86.92   
  2016-10-02 19:00:00   1.0   88.61 NaN   88.61   88.61   88.61   88.61   
  2016-10-02 19:30:00   1.0   99.21 NaN   99.21   99.21   99.21   99.21   
  2016-10-02 20:00:00   1.0   81.02 NaN   81.02   81.02   81.02   81.02   
  2016-10-02 20:30:00   1.0   84.83 NaN   84.83   84.83   84.83   84.83   
  2016-10-02 21:00:00   1.0   59.29 NaN   59.29   59.29   59.29   59.29   
  2016-10-02 21:30:00   1.0   95.99 NaN   95.99   95.99   95.99   95.99   
  2016-10-02 22:00:00   1.0   76.95 NaN   76.95   76.95   76.95   76.95   
  2016-10-02 22:30:00   1.0  112.49 NaN  112.49  112.49  112.49  112.49   
  2016-10-02 23:00:00   1.0   88.85 NaN   88.85   88.85   88.85   88.85   
  2016-10-02 23:30:00   1.0  122.40 NaN  122.40  122.40  122.40  122.40   
  2016-10-03 00:00:00   1.0   82.84 NaN   82.84   82.84   82.84   82.84 

Al mirar esto, puede verlo solo agrupar por día de la semana. Así que esta no es la forma correcta de agrupar para calcular la media como quería.

piRSquared

Usaría df.index.weekdayydf.index.time

df.groupby([ df.index.weekday,df.index.time]).mean()

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

Para la combinación dada en un marco de datos, calcule la frecuencia de ocurrencia de esa combinación en otro marco de datos en R

Calcule la media del subconjunto de filas en el marco de datos de pandas: ¿groupby o for loop?

Calcule la media del subconjunto de filas en el marco de datos de pandas: ¿groupby o for loop?

Cuente la frecuencia de los valores de una columna en el marco de datos de pandas y etiquete cada fila con su número de ocurrencia de frecuencia

Calcule la media de una columna de marco de datos para cada cinco variables en R

Transforma el marco de datos de Pandas en una matriz de frecuencia

Calcule la media del marco de datos omitiendo ciertos valores en Python / Pandas

Cómo contar la frecuencia de valores seleccionados en el marco de datos de Python pandas

Pandas: calcule el promedio ponderado por fila usando un marco de datos y una serie

Pandas: calcule el promedio ponderado por fila usando un marco de datos y una serie

Calcule el promedio ponderado usando un pandas / marco de datos

Cómo modificar el valor de la cadena en una columna dada y crear una columna diferente con ella en el marco de datos de pandas

Llenando la columna en el marco de datos de pandas usando una llamada de función

¿Cómo puedo contar la frecuencia con la que cambia el valor de una columna en un marco de datos de pandas?

¿Cómo puedo contar la frecuencia con la que cambia el valor de una columna en un marco de datos de pandas?

¿Cómo puedo contar la frecuencia con la que cambia el valor de una columna en un marco de datos de pandas?

¿Cómo encontrar la diferencia media dentro de una ventana móvil en el marco de datos de pandas?

Automatice el nombre de la creación de un nuevo marco de datos a partir de cadenas en una matriz numpy dada pandas df

¿Cómo acumular filas en función de una combinación dada en el marco de datos de pandas?

Reemplazar valores en la columna de marco de datos si la segunda columna coincide con una lista dada de pandas

Guarde y cargue correctamente el marco de datos de pandas en csv mientras conserva la frecuencia de datetimeindex

Calcule una nueva columna en el marco de datos de pandas basándose solo en registros agrupados

Media de valores en el marco de datos de pandas

usando valores duplicados de una columna para eliminar la fila completa en el marco de datos de pandas

Obtener la frecuencia de palabras de una columna de marco de datos de pandas

Calcule la intersección sobre la unión (índice de Jaccard) en el marco de datos de pandas

Complete las fechas que faltan en el marco de datos usando la media

Complete las fechas que faltan en el marco de datos usando la media

Cómo reemplazar una palabra en el marco de datos usando otro marco de datos en Python Pandas

TOP Lista

CalienteEtiquetas

Archivo