¿Cómo veo las filas, columnas y tipos de una tabla en pandas?
Mide la tabla en tres líneas: cuántas filas y columnas tiene, de qué tipo es cada columna y qué fechas cubre.
Curso gratis. Tu Maestro, una IA, .
Ya sabes qué es una fila. La segunda pregunta mide la tabla: cuántas filas y columnas tiene, de qué tipo es cada columna y qué periodo cubren sus fechas. Son tres líneas de código y te ahorran sorpresas después, cuando ya calculaste algo con la columna equivocada.
Corre el ejercicio. data.shape responde con dos números: primero filas, luego columnas. data.dtypes dice qué tipo de dato cree pandas que tiene cada columna.
Corre la celda y lee los tipos de cada columna. Después reemplaza data.dtypes por data.info(), que además cuenta cuántos valores no vacíos tiene cada columna. Ya terminaste cuando puedas decir qué columnas tienen menos de 311 valores.
Corre la celda y lee los tipos de cada columna. Después reemplaza data.dtypes por data.info(), que además cuenta cuántos valores no vacíos tiene cada columna. Ya terminaste cuando puedas decir qué columnas tienen menos de 311 valores.
Ejecuta tu código para ver lo que imprime y el valor de su última expresión. Cada ejecución empieza de nuevo. Ctrl+Enter ejecuta tu código. Tab agrega sangría; para salir del editor, presiona Escape y luego Tab.
Listo para ejecutar tu código.
Ejecuta tu código para ver su salida aquí.
Datos: viajes-rueda, 311 filas
Enter guarda una celda y Escape la deja como estaba. Deja una celda vacía para un valor faltante.
| Fila | Quitar | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | ||||||||||
| 2 | ||||||||||
| 3 | ||||||||||
| 4 | ||||||||||
| 5 | ||||||||||
| 6 | ||||||||||
| 7 | ||||||||||
| 8 | ||||||||||
| 9 | ||||||||||
| 10 | ||||||||||
| 11 | ||||||||||
| 12 | ||||||||||
| 13 | ||||||||||
| 14 | ||||||||||
| 15 | ||||||||||
| 16 | ||||||||||
| 17 | ||||||||||
| 18 | ||||||||||
| 19 | ||||||||||
| 20 |
La tabla tiene 311 filas y 9 columnas. Los tipos que reporta pandas se leen así:
| Tipo | Qué guarda | Columnas de Rueda |
|---|---|---|
int64 | números enteros | viaje_id |
float64 | números con decimales | duracion_min, distancia_km |
str | texto | estaciones, tipo_usuario, bici_id |
datetime64[us] | fecha y hora | inicio |
Int64 | enteros que admiten vacíos | anio_nacimiento |
Esa última, con I mayúscula, es el tipo de pandas para enteros que pueden tener huecos. Que aparezca ya es una pista: anio_nacimiento tiene vacíos. data.info() lo confirma con su columna Non-Null Count: tres columnas tienen 303 valores y anio_nacimiento solo 238. El siguiente módulo se dedica a eso.
Números que miden y números que etiquetan
Que una columna sea numérica no quiere decir que sea una cantidad. Antes de seguir, decide.
Comprueba lo que sabes: Las tres columnas son numéricas. ¿Cuál no tiene sentido promediar?
Pandas te calcula el promedio de viaje_id sin quejarse: 40,365. No significa nada. Es como promediar números de teléfono. La computadora no sabe qué representa cada columna; tú sí, o se lo tienes que preguntar a alguien.
Al revisar los tipos, separa las columnas en dos grupos:
- Miden algo:
duracion_min(minutos) ydistancia_km(kilómetros). Tiene sentido ver su mínimo, su máximo, su mediana y cómo se reparten. - Etiquetan algo:
viaje_idybici_id. Lo útil es contar: cuántos distintos hay, cuáles se repiten.
anio_nacimiento está en medio. Es un número que mide algo, pero lo que te interesa casi siempre es la edad, y un año promedio de 1983 dice menos que "la mitad tiene entre 30 y 54 años". Lo vas a revisar en el módulo 3.
A veces el problema va al revés: una etiqueta se lee como número y se daña. Un código postal como 03100 leído como número se vuelve 3100. Ese tipo de problema al leer un archivo es el tema del curso gratuito Tu CSV se ve raro; aquí basta con notarlo y anotarlo.
Si tu tabla tiene una columna que no sabes si mide o etiqueta, pregúntale a tu Maestro.
Qué periodo cubre
Si la tabla tiene fechas, lo siguiente es saber de cuándo a cuándo va. Un reporte "del mes" hecho con una tabla de dos semanas no compara con nada.
Corre la celda para ver la primera y la última fecha. Después agrega al final data["inicio"].dt.date.valuecounts().sortindex() para contar los viajes de cada día. Ya terminaste cuando sepas si hay algún día sin viajes.
Corre la celda para ver la primera y la última fecha. Después agrega al final data["inicio"].dt.date.value_counts().sort_index() para contar los viajes de cada día. Ya terminaste cuando sepas si hay algún día sin viajes.
Ejecuta tu código para ver lo que imprime y el valor de su última expresión. Cada ejecución empieza de nuevo. Ctrl+Enter ejecuta tu código. Tab agrega sangría; para salir del editor, presiona Escape y luego Tab.
Listo para ejecutar tu código.
Ejecuta tu código para ver su salida aquí.
Datos: viajes-rueda, 311 filas
Enter guarda una celda y Escape la deja como estaba. Deja una celda vacía para un valor faltante.
| Fila | Quitar | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | ||||||||||
| 2 | ||||||||||
| 3 | ||||||||||
| 4 | ||||||||||
| 5 | ||||||||||
| 6 | ||||||||||
| 7 | ||||||||||
| 8 | ||||||||||
| 9 | ||||||||||
| 10 | ||||||||||
| 11 | ||||||||||
| 12 | ||||||||||
| 13 | ||||||||||
| 14 | ||||||||||
| 15 | ||||||||||
| 16 | ||||||||||
| 17 | ||||||||||
| 18 | ||||||||||
| 19 | ||||||||||
| 20 |
La tabla va del lunes 2 de marzo de 2026 a las 8:11 al domingo 15 de marzo a las 23:51: dos semanas completas, con viajes todos los días (entre 14 y 32 por día). Ningún día falta, y eso también vale anotarlo: un día en cero suele ser un problema de exportación, no un día sin ciclistas.
Hay un detalle más. El último viaje empieza a las 23:51 del último día, casi a medianoche. Si la tabla se exportó justo a esa hora, los viajes de esa noche quizá no habían terminado. Es una sospecha, no un hecho, y para eso es la bitácora:
Observación: la tabla cubre del 2 al 15 de marzo; el último viaje empieza a las 23:51 del 15. Evidencia:
min()ymax()deinicio. Pregunta: ¿a qué hora se exportó? ¿Los viajes de esa noche ya habían terminado?
En el siguiente módulo vas a ver que la sospecha tenía fundamento.
Si no estás seguro de qué anotar en tu bitácora, pídele a tu Maestro que revise tu entrada.
Consejo: Todo en una línea
data.info() te da de una vez el número de filas, el tipo de cada columna y cuántos valores no vacíos tiene. Es buena primera línea para cualquier tabla nueva.
Inténtalo
Una pregunta de otra tabla, para ver si el criterio se te queda.