Sé que hay varias formas de convertir una columna en un objeto de fecha, pero lo que estoy buscando es una forma de hacerlo mientras formateo simultáneamente otras columnas. Digamos que tengo el siguiente marco de datos:
import pandas as pd url = "https://raw.github.com/pandas-dev/pandas/master/pandas/tests/data/tips.csv" df = pd.read_csv(url) df["date"] = list(range(42005, 42005+len(df)))Lo que estoy tratando de lograr es la capacidad de imprimir estos datos usando algún formato, por lo que podría hacer algo como lo siguiente:
print( df .head(10) .to_string( formatters={"total_bill": "${:,.2f}".format, "tip": "${:,.2f}".format } ) )Pero también quiero formatear la fecha en este paso también. Traté de buscar aquí lo que estaba buscando, pero las opciones de fecha y hora no parecían funcionar en lo que estoy tratando de hacer, y crear una opción personalizada está un poco fuera del alcance de mi público objetivo.
¿Es posible hacer esto de una manera simple?
Resulta que esto es increíblemente fácil una vez que te das cuenta de cómo funciona realmente la función...
print( df .head(10) .to_string( formatters={"total_bill": "${:,.2f}".format, "tip": "${:,.2f}".format, "date": lambda x: "{:%m/%d/%Y}".format(pd.to_datetime(x, unit="D")) } ) ) total_bill tip sex smoker day time size date 0 $16.99 $1.01 Female No Sun Dinner 2 02/08/2017 1 $10.34 $1.66 Male No Sun Dinner 3 02/09/2017 2 $21.01 $3.50 Male No Sun Dinner 3 02/10/2017 3 $23.68 $3.31 Male No Sun Dinner 2 02/11/2017 4 $24.59 $3.61 Female No Sun Dinner 4 02/12/2017 5 $25.29 $4.71 Male No Sun Dinner 4 02/13/2017 6 $8.77 $2.00 Male No Sun Dinner 2 02/14/2017 7 $26.88 $3.12 Male No Sun Dinner 4 02/15/2017 8 $15.04 $1.96 Male No Sun Dinner 2 02/16/2017 9 $14.78 $3.23 Male No Sun Dinner 2 02/17/2017