¿Obtener todas las columnas con el tipo datetime usando pandas?

Tengo un gran DataFrame donde las columnas no están siempre en orden ni sé su nombre.

¿Qué hago para encontrar todas las columnas que son tipos de fecha y hora?

La mayoría de las soluciones en línea, el póster conoce el nombre de la columna, así que estoy teniendo un poco de problemas, ya que no. ¿Que puedo hacer en esta situacion?

Puede usar pandas.DataFrame.select_dtypes() , e incluir solo el tipo datetime64.

 df.select_dtypes(include=['datetime64']) 

Manifestación

 >>> df dts1 dts2 ints 0 2012-01-01 2004-01-01 0 1 2012-01-02 2004-01-02 1 2 2012-01-03 2004-01-03 2 .. ... ... ... 97 2012-04-07 2004-04-07 97 98 2012-04-08 2004-04-08 98 99 2012-04-09 2004-04-09 99 >>> df.select_dtypes(include=['datetime64']) dts1 dts2 0 2012-01-01 2004-01-01 1 2012-01-02 2004-01-02 2 2012-01-03 2004-01-03 .. ... ... 97 2012-04-07 2004-04-07 98 2012-04-08 2004-04-08 99 2012-04-09 2004-04-09 

Dado que cada columna de un grupo de datos de pandas es una serie de pandas, simplemente repita la lista de nombres de columnas y verifique condicionalmente series.dtype de datetime (generalmente datetime64 [ns] ):

 for col in df.columns: if df[col].dtype == 'datetime64[ns]': print(col) 

O como lista de comprensión:

 [col for col in df.columns if df[col].dtype == 'datetime64[ns]'] 

O como un filtro de serie:

 df.dtypes[df.dtypes=='datetime64[ns]']