Strip timezone info in pandas

He estado luchando para eliminar la información de zona horaria de una columna en un dataframe de pandas. He comprobado la siguiente pregunta, pero no funciona para mí:

¿Puedo exportar pandas DataFrame a Excel quitando tzinfo?

Usé tz_localize para asignar una zona horaria a un objeto de fecha y hora, porque necesito convertir a otra zona horaria utilizando tz_convert. Esto agrega un desplazamiento UTC, en la forma “-06: 00”. Necesito deshacerme de este desplazamiento, porque produce un error cuando bash exportar el dataframe a Excel.

Salida real

2015-12-01 00:00:00-06:00 

Salida deseada

 2015-12-01 00:00:00 

He intentado obtener los caracteres que quiero usando el método str (), pero parece que el resultado de tz_localize no es una cadena. Mi solución hasta ahora es exportar el dataframe a CSV, leer el archivo y usar el método str () para obtener los caracteres que quiero.

¿Hay una solución más fácil?

Tal vez ayude a quitar los últimos 6 caracteres:

 print df datetime 0 2015-12-01 00:00:00-06:00 1 2015-12-01 00:00:00-06:00 2 2015-12-01 00:00:00-06:00 df['datetime'] = df['datetime'].astype(str).str[:-6] print df datetime 0 2015-12-01 00:00:00 1 2015-12-01 00:00:00 2 2015-12-01 00:00:00 

Si su serie solo contiene fechas, entonces puede hacer:

my_series.dt.tz_localize(None)

Esto eliminará la información de la zona horaria (no cambiará la hora) y devolverá una serie de horas locales ingenuas, que se pueden exportar a Excel utilizando to_excel (), por ejemplo.

Siguiendo la sugerencia de Beatriz Fonseca, terminé haciendo lo siguiente:

 from datetime import datetime df['dates'].apply(lambda x:datetime.replace(x,tzinfo=None)) 

Si siempre es los últimos 6 caracteres que desea ignorar, simplemente puede cortar su cadena actual:

 >>> '2015-12-01 00:00:00-06:00'[0:-6] '2015-12-01 00:00:00'