[Python-es] Promedios díarios en python

Victor Villalobos revxfire en gmail.com
Mie Oct 16 04:15:23 CEST 2013


Si estas usando SqLite o alguna BD con sql, también puedes sencillamente
usar las operaciones SQL de sum(), count() y dividir sum / count, de las
columnas que te interesan, lo digo saltándome del tema python, pero también
es una opción y fácil de usar.

Ejemplo:
select sum(SALARIO) / count(*) as MEDIA_SALARIOS
  from EMPLEADOS

Saludos.


El 8 de octubre de 2013 10:19, Juan Luis Cano <juanlu001 en gmail.com>escribió:

> 2013/10/8 Boris Vladimir Comi <glez_b en comunidad.unam.mx>
>
>>  Me falto aclarar que los promedios que obtengo con el codigo, usando
>> numpy, son los promedios de todos los datos y yo estoy interesado en
>> obtener los promedios díarios, como se puede lograr eso?
>>
>
>
> Nada más tienes que usar mean(axis=1).
>
>
>
>>  ------------------------------
>> *De:* Boris Vladimir Comi
>> *Enviado:* martes, 08 de octubre de 2013 02:43 a.m.
>>
>> *Para:* La lista de python en castellano
>> *Asunto:* RE: [Python-es] Promedios díarios en python
>>
>>   Gracias Alberto y Kiko:
>>
>> Si tengo instaladas las librerias de numpy y pandas. Al obtener los
>> promedios, maximo y minimo de una base de datos de prueba cuya estructura
>> es como sigue:
>>
>> Fecha, lat, lon, id, humedad,temperatura,precipitacion
>>
>> Para leer los datos y obtener los estadísticos lo hago de dos maneras:
>>
>> usando numpy:
>>
>> from numpy import *
>> from scipy import *
>> import numpy as np
>>
>>
>> data=np.loadtxt('path-tracks.csv',delimiter=',',skiprows=1,dtype=str)
>>
>> data1=np.loadtxt('path-tracks.csv',delimiter=',',skiprows=1,dtype=int,usecols=[4,5])
>>
>> print data
>>
>> [['2/5/04 6:45 AM' '19.7' '-95.2' '1' '45' '-38' '1']
>>  ['2/5/04 7:45 AM' '19.7' '-94.7' '1' '34' '-48' '1']
>>  ['2/5/04 8:45 AM' '19.3' '-93.9' '1' '57' '-60' '1']
>>  ['2/5/04 9:45 AM' '19' '-93.5' '1' '89' '-58' '1']
>>  ['2/5/04 10:45 AM' '19' '-92.8' '1' '34' '-50' '2']
>>  ['2/5/04 11:45 AM' '19.2' '-92.6' '1' '23' '-40' '3']
>>  ['2/5/04 12:45 PM' '19.9' '-93' '1' '10' '-43' '4']
>>  ['2/5/04 1:15 PM' '20' '-92.8' '1' '50' '-32' '2']
>>  ['30/5/04 4:45 AM' '23.1' '-100.2' '2' '45' '-45' '3']
>>  ['30/5/04 5:45 AM' '23.2' '-100' '2' '68' '-56' '2']
>>  ['30/5/04 6:45 AM' '23.3' '-100' '2' '90' '-48' '1']
>>  ['30/5/04 7:45 AM' '23.3' '-100.2' '2' '100' '-32' '1']
>>  ['31/5/04 3:15 AM' '23.4' '-99' '3' '12' '-36' '1']
>>  ['31/5/04 4:15 AM' '23.5' '-98.9' '3' '34' '-46' '1']
>>  ['31/5/04 5:15 AM' '23.6' '-98.7' '3' '56' '-68' '2']
>>  ['31/5/04 6:15 AM' '23.7' '-98.8' '3' '78' '-30' '1']]
>>
>> print 'mean:', data1.mean(axis=0)
>> print 'max:', data1.max(axis=0)
>> print 'min:', data1.min(axis=0)
>>
>> mean: [ 51.5625 -45.625 ]
>> max: [100 -30]
>> min: [ 10 -68]
>>
>> la pregunta es: como obtengo la suma unicamente de la columna
>> precipitacion?
>>
>> Usando pandas:
>>
>> import pandas as pd
>>
>> df = pd.read_csv('path-tracks.csv', index_col= 'Date', parse_dates=[0])
>> df
>>
>>                 Lat Lon ID Moisture Temperature Precipitacion
>>
>> Date
>> 2004-02-05 06:45:00 19.7 -95.2 1 45 -38 1
>> 2004-02-05 07:45:00 19.7 -94.7 1 34 -48 1
>> 2004-02-05 08:45:00 19.3 -93.9 1 57 -60 1
>> 2004-02-05 09:45:00 19.0 -93.5 1 89 -58 1
>> 2004-02-05 10:45:00 19.0 -92.8 1 34 -50 2
>> 2004-02-05 11:45:00 19.2 -92.6 1 23 -40 3
>> 2004-02-05 12:45:00 19.9 -93.0 1 10 -43 4
>> 2004-02-05 13:15:00 20.0 -92.8 1 50 -32 2
>> 2004-05-30 04:45:00 23.1 -100.2 2 45 -45 3
>>
>> 2004-05-30 05:45:00 23.2 -100.0 2 68 -56 2
>> 2004-05-30 06:45:00 23.3 -100.0 2 90 -48 1
>> 2004-05-30 07:45:00 23.3 -100.2 2 100 -32 1
>> 2004-05-31 03:15:00 23.4 -99.0 3 12 -36 1
>> 2004-05-31 04:15:00 23.5 -98.9 3 34 -46 1
>> 2004-05-31 05:15:00 23.6 -98.7 3 56 -68 2
>> 2004-05-31 06:15:00 23.7 -98.8 3 78 -30 1
>>
>>
>>  Al intentar conseguir, por ejmplo la suma diaria:
>>
>> df.resample('D',how='sum')
>>
>> obtengo lo siguiente:
>>
>>           Lat    Lon  ID  Moisture  Temperature
>>
>> Date
>> 2004-02-06 155.8 -748.5 8 342 -369
>> 2004-02-07 NaN NaN NaN NaN NaN
>> 2004-02-08 NaN NaN NaN NaN NaN
>> 2004-02-09 NaN NaN NaN NaN NaN
>> 2004-02-10 NaN NaN NaN NaN NaN
>> 2004-02-11 NaN NaN NaN NaN NaN
>> 2004-02-12 NaN NaN NaN NaN NaN
>> 2004-02-13 NaN NaN NaN NaN NaN
>> 2004-02-14 NaN NaN NaN NaN NaN
>> 2004-02-15 NaN NaN NaN NaN NaN
>> 2004-02-16 NaN NaN NaN NaN NaN
>> 2004-02-17 NaN NaN NaN NaN NaN
>> 2004-02-18 NaN NaN NaN NaN NaN
>> 2004-02-19 NaN NaN NaN NaN NaN
>> 2004-02-20 NaN NaN NaN NaN NaN
>> 2004-02-21 NaN NaN NaN NaN NaN
>> 2004-02-22 NaN NaN NaN NaN NaN
>> 2004-02-23 NaN NaN NaN NaN NaN
>> 2004-02-24 NaN NaN NaN NaN NaN
>> 2004-02-25 NaN NaN NaN NaN NaN
>> 2004-02-26 NaN NaN NaN NaN NaN
>> 2004-02-27 NaN NaN NaN NaN NaN
>> 2004-02-28 NaN NaN NaN NaN NaN
>> 2004-02-29 NaN NaN NaN NaN NaN
>> 2004-03-01 NaN NaN NaN NaN NaN
>> 2004-03-02 NaN NaN NaN NaN NaN
>> 2004-03-03 NaN NaN NaN NaN NaN
>> 2004-03-04 NaN NaN NaN NaN NaN
>> 2004-03-05 NaN NaN NaN NaN NaN
>> 2004-03-06 NaN NaN NaN NaN NaN
>> 2004-03-07 NaN NaN NaN NaN NaN
>> 2004-03-08 NaN NaN NaN NaN NaN
>> 2004-03-09 NaN NaN NaN NaN NaN
>> 2004-03-10 NaN NaN NaN NaN NaN
>> 2004-03-11 NaN NaN NaN NaN NaN
>> 2004-03-12 NaN NaN NaN NaN NaN
>> 2004-03-13 NaN NaN NaN NaN NaN
>> 2004-03-14 NaN NaN NaN NaN NaN
>> 2004-03-15 NaN NaN NaN NaN NaN
>> 2004-03-16 NaN NaN NaN NaN NaN
>> 2004-03-17 NaN NaN NaN NaN NaN
>> 2004-03-18 NaN NaN NaN NaN NaN
>> 2004-03-19 NaN NaN NaN NaN NaN
>> 2004-03-20 NaN NaN NaN NaN NaN
>> 2004-03-21 NaN NaN NaN NaN NaN
>> 2004-03-22 NaN NaN NaN NaN NaN
>> 2004-03-23 NaN NaN NaN NaN NaN
>> 2004-03-24 NaN NaN NaN NaN NaN
>> 2004-03-25 NaN NaN NaN NaN NaN
>> 2004-03-26 NaN NaN NaN NaN NaN
>> 2004-03-27 NaN NaN NaN NaN NaN
>> 2004-03-28 NaN NaN NaN NaN NaN
>> 2004-03-29 NaN NaN NaN NaN NaN
>> 2004-03-30 NaN NaN NaN NaN NaN
>> 2004-03-31 NaN NaN NaN NaN NaN
>> 2004-04-01 NaN NaN NaN NaN NaN
>> 2004-04-02 NaN NaN NaN NaN NaN
>> 2004-04-03 NaN NaN NaN NaN NaN
>> 2004-04-04 NaN NaN NaN NaN NaN
>> 2004-04-05 NaN NaN NaN NaN NaN
>> 2004-04-06 NaN NaN NaN NaN NaN
>> 2004-04-07 NaN NaN NaN NaN NaN
>> 2004-04-08 NaN NaN NaN NaN NaN
>> 2004-04-09 NaN NaN NaN NaN NaN
>> 2004-04-10 NaN NaN NaN NaN NaN
>> 2004-04-11 NaN NaN NaN NaN NaN
>> 2004-04-12 NaN NaN NaN NaN NaN
>> 2004-04-13 NaN NaN NaN NaN NaN
>> 2004-04-14 NaN NaN NaN NaN NaN
>> 2004-04-15 NaN NaN NaN NaN NaN
>> 2004-04-16 NaN NaN NaN NaN NaN
>> 2004-04-17 NaN NaN NaN NaN NaN
>> 2004-04-18 NaN NaN NaN NaN NaN
>> 2004-04-19 NaN NaN NaN NaN NaN
>> 2004-04-20 NaN NaN NaN NaN NaN
>> 2004-04-21 NaN NaN NaN NaN NaN
>> 2004-04-22 NaN NaN NaN NaN NaN
>> 2004-04-23 NaN NaN NaN NaN NaN
>> 2004-04-24 NaN NaN NaN NaN NaN
>> 2004-04-25 NaN NaN NaN NaN NaN
>> 2004-04-26 NaN NaN NaN NaN NaN
>> 2004-04-27 NaN NaN NaN NaN NaN
>> 2004-04-28 NaN NaN NaN NaN NaN
>> 2004-04-29 NaN NaN NaN NaN NaN
>> 2004-04-30 NaN NaN NaN NaN NaN
>> 2004-05-01 NaN NaN NaN NaN NaN
>> 2004-05-02 NaN NaN NaN NaN NaN
>> 2004-05-03 NaN NaN NaN NaN NaN
>> 2004-05-04 NaN NaN NaN NaN NaN
>> 2004-05-05 NaN NaN NaN NaN NaN
>> 2004-05-06 NaN NaN NaN NaN NaN
>> 2004-05-07 NaN NaN NaN NaN NaN
>> 2004-05-08 NaN NaN NaN NaN NaN
>> 2004-05-09 NaN NaN NaN NaN NaN
>> 2004-05-10 NaN NaN NaN NaN NaN
>> 2004-05-11 NaN NaN NaN NaN NaN
>> 2004-05-12 NaN NaN NaN NaN NaN
>> 2004-05-13 NaN NaN NaN NaN NaN
>> 2004-05-14 NaN NaN NaN NaN NaN
>> 2004-05-15 NaN NaN NaN NaN NaN
>> 2004-05-16 NaN NaN NaN NaN NaN
>> 2004-05-17 NaN NaN NaN NaN NaN
>> 2004-05-18 NaN NaN NaN NaN NaN
>> 2004-05-19 NaN NaN NaN NaN NaN
>> 2004-05-20 NaN NaN NaN NaN NaN
>> 2004-05-21 NaN NaN NaN NaN NaN
>> 2004-05-22 NaN NaN NaN NaN NaN
>> 2004-05-23 NaN NaN NaN NaN NaN
>> 2004-05-24 NaN NaN NaN NaN NaN
>> 2004-05-25 NaN NaN NaN NaN NaN
>> 2004-05-26 NaN NaN NaN NaN NaN
>> 2004-05-27 NaN NaN NaN NaN NaN
>> 2004-05-28 NaN NaN NaN NaN NaN
>> 2004-05-29 NaN NaN NaN NaN NaN
>> 2004-05-30 NaN NaN NaN NaN NaN
>> 2004-05-31 92.9 -400.4 8 303 -181 5
>> 2004-06-01 94.2 -395.4 12 180 -180
>>
>> Hice algo mal, porque no toma en cuenta la fecha correspondiente al
>> 2004-02-05 6:45:00, 2004-30-05 6:45:00? como solucionar este error?
>>
>>
>>  Agradeceria su ayuda
>>
>>
>>  ------------------------------
>> *De:* Python-es <python-es-bounces+glez_b=comunidad.unam.mx en python.org>
>> en nombre de Alberto Chamorro <a.chamorro.ruiz en gmail.com>
>> *Enviado:* martes, 08 de octubre de 2013 01:06 a.m.
>> *Para:* La lista de python en castellano
>> *Asunto:* Re: [Python-es] Promedios díarios en python
>>
>>
>> Y la pregunta sobre Python es....
>>
>> ¿Tienes algún algoritmo que hayas intentado hacer al menos?
>>
>> Alberto
>>
>> Tengo datos mensuales estructurados en la siguiente manera
>>
>> Fecha,Time, Humedad, Temperatura, Precipitación Acumulada
>> 1/01/2011, 00:00, 23, 50, 2,    1/01/2011, 00:15, 22, 45, 1,   1/01/2011, 00:30, 20, 39, 0,  1/01/2011, 01:00, 25, 34, 0,  1/01/2011, 01:15, 23, 50, 0,
>>            .
>>            .
>>            .
>>            .1/01/2011, 23:45, 22, 40, 0,
>>            .
>>            .
>>            .
>>            .31/01/2011, 00:00, 23, 45, 0,
>>
>> Como puedo conseguir los promedios díarios de las variables Temperatura y
>> Humedad así como la suma díaria de la Precipitacion Acumulada?
>>
>>
>>
>>
>> _______________________________________________
>> Python-es mailing list
>> Python-es en python.org
>> https://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>>
>>
>> _______________________________________________
>> Python-es mailing list
>> Python-es en python.org
>> https://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>>
>>
>
>
> --
> Juanlu
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>


-- 
Victor Villalobos
Bahia Pirata
Inversiones Villalobos Balzan.
0412 6882141
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20131016/a84692ed/attachment.html>


Más información sobre la lista de distribución Python-es