[Python-es] Redondear numeros y formatear salida

Juan Luis Cano juanlu001 en gmail.com
Sab Oct 19 11:56:57 CEST 2013


On 10/19/2013 02:50 AM, Boris Vladimir Comi wrote:
> Tengo una base de datos mensual y los datos diarios están cada 15 
> minutos. Desarrollé un script para calcular el promedio y suma de 
> algunas variables. Los datos tienen la siguiente estructura:
>
>
> MagViento, DirViento, u, v, Humedad, Precipitacion
> 5.67, 245 , 7.7898, 6.5660, 100, 4.1
>
>
> Cuando corro el script, obtengo la siguiente salida:
>
> Fecha DirRes Humedad MagRes PreciAcu Temperatura
>
> 2011/07/01 141.058824 100.000000 4.647059 30.4 21.367059
> 2011/07/02 153.823529 99.823529 3.470588 18.0 21.841765
> 2011/07/03 133.882353 99.823529 4.647059 4.0 21.347059
>
>
>
> Ahora deseo guardar la salida a un archivo csv, pero me gustaria que 
> las columnas fueran redondeadas a 1, por ejemplo: 153.823529 = 153.8. 
> Despues de esto, deseo convertir las columnas
> DirRes y  Humedad a un numero entero y
> MagRes, PreciAcu y Temperatura se queden como float
>
>
> Como puedo lograr esto en pandas o de alguna otra manera?

Puedes utilizar el método `.to_csv` del objeto DataFrame con el 
parámetro `float_format`, que acepta una función:

http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_csv.html

en tu caso sería algo así como:

df.to_csv('data.csv', float_format='{0:.1f}'.format)


Mira a ver si así te funciona.

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/

------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20131019/f05a4ce7/attachment.html>


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