Si tengo un marco de datos con las siguientes columnas:
1. NAME object
2. On_Time object
3. On_Budget object
4. %actual_hr float64
5. Baseline Start Date datetime64[ns]
6. Forecast Start Date datetime64[ns]
Me gustaría poder decir: aquí hay un marco de datos, ¿me dan una lista de las columnas que son de tipo Object o de tipo DateTime?
Tengo una función que convierte números (Float64) a dos decimales, y me gustaría usar esta lista de columnas de marco de datos, de un tipo particular, y ejecutarla a través de esta función para convertirlos a 2dp.
Tal vez:
For c in col_list: if c.dtype = "Something"
list[]
List.append(c)?

df.dtypeshace eso.Respuestas:
Si desea una lista de columnas de cierto tipo, puede usar
groupby:fuente
objecttipo, independientemente de su contenido realselect_dtypeslugarA partir de pandas v0.14.1, puede utilizar
select_dtypes()para seleccionar columnas por dtypefuente
El uso
dtypele dará el tipo de datos de la columna deseada:Si quieres saber los tipos de datos de toda la columna a la vez , puede plural de utilizar
dtypecomo dtypes :fuente
df.select_dtypes(include=['Object','DateTime']).columnscomo se discute a continuaciónPuede usar la máscara booleana en el atributo dtypes:
Puede mirar solo esas columnas con el tipo de letra deseado:
Ahora puede usar round (o lo que sea) y asignarlo de nuevo:
fuente
Esto debería funcionar
fuente
use
df.info(verbose=True)wheredfis a pandas datafarme, por defectoverbose=Falsefuente
La forma más directa de obtener una lista de columnas de cierto dtype, por ejemplo, 'objeto':
Por ejemplo:
Para obtener todas las columnas de tipo 'objeto':
Por solo la lista:
fuente
Si desea una lista de solo las columnas de objetos que podría hacer:
y luego, si desea obtener otra lista de solo los números:
fuente
Se me ocurrió esta línea de tres .
Básicamente, esto es lo que hace:
Esto me facilitó la vida al intentar generar esquemas sobre la marcha. Espero que esto ayude
fuente
para yoshiserry;
fuente
Yo uso infer_objects ()
df.infer_objects().dtypesfuente