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.dtypes
hace eso.Respuestas:
Si desea una lista de columnas de cierto tipo, puede usar
groupby
:fuente
object
tipo, independientemente de su contenido realselect_dtypes
lugarA partir de pandas v0.14.1, puede utilizar
select_dtypes()
para seleccionar columnas por dtypefuente
El uso
dtype
le 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
dtype
como dtypes :fuente
df.select_dtypes(include=['Object','DateTime']).columns
como 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)
wheredf
is a pandas datafarme, por defectoverbose=False
fuente
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().dtypes
fuente