Pandas en Python, con ejemplos -Parte I- Introducción
Pandas es una librería de python para el análisis de datos que proporciona unas estructuras de datos flexibles y que permiten trabajar de forma muy eficiente
Serie: Pandas en Python con ejemplos parte 1 de 3
El proyecto de este post lo puedes descargar pulsando AQUI.
Introducción
Pandas es una librería de python destinada al análisis de datos, que proporciona unas estructuras de datos flexibles y que permiten trabajar con ellos de forma muy eficiente. Pandas ofrece las siguientes estructuras de datos:
-
Series: Son arrays unidimensionales con indexación (arrays con índice o etiquetados), similar a los diccionarios. Pueden generarse a partir de diccionarios o de listas.
-
DataFrame: Son estructuras de datos similares a las tablas de bases de datos relacionales como SQL.
- Panel, Panel4D y PanelND: Estas estructuras de datos permiten trabajar con más de dos dimensiones. Dado que es algo complejo y poco utilizado trabajar con arrays de más de dos dimensiones no trataremos los paneles en estos tutoriales de introducción a Pandas.
Para ver los ejemplos que vamos a mostrar en este tutorial y en el resto relacionados con la librería de Pandas, es necesario descargarnos esta librería (y la librería de Numpy). Para ello lo podemos descargar a través del repositorio de paquetes PyPi (con pip) de la siguiente manera:
$ pip install pandas
$ pip install numpy
Vamos a ver a continuación ejemplos básicos con Series y DataFrame:
Lo primero que debemos hacer es importar la librería de Pandas:
import pandas as pd
Por convenio (de la comunidad de desarrolladores) se pone «pd" como alias de la librería Pandas.
El primer ejemplo que vamos a poner va a ser el de definir una estructura de datos "Series» que como ya comentamos es un array de datos unidimensional con indexación. Las «Series» se definen de la siguiente manera:
serie = pd.Series(data, index=index)
Es decir, que en el primer parámetro le indicamos los datos del array y en el segundo parámetro los índices. Veamos un ejemplo de como crear una estructura «Series» con los integrantes de la selección Española de fútbol que ganó el mundial del año 2010, en el que tenemos como ‘data’ sus nombres y como índice su dorsal:
spanishPlayers = pd.Series(
['Casillas', 'Ramos', 'Pique', 'Puyol', 'Capdevila', 'Xabi Alonso', 'Busquets', 'Xavi Hernandez', 'Pedrito',
'Iniesta', 'Villa'], index=[1, 15, 3, 5, 11, 14, 16, 8, 18, 6, 7])
print "Spanish Football Players: \n%s" % spanishPlayers
Como salida a este fragmento de código en el que se va a imprimir por pantalla la Serie es la siguiente, en la que veremos lo anteriormente mencionado:
Spanish Football Players:
1 Casillas
15 Ramos
3 Pique
5 Puyol
11 Capdevila
14 Xabi Alonso
16 Busquets
8 Xavi Hernandez
18 Pedrito
6 Iniesta
7 Villa
dtype: object
En el siguiente caso; en el que no le indiquemos los índices de forma explícita, no generará los índices de forma automática empezando desde el valor cero:
spanishPlayers = pd.Series(
['Casillas', 'Ramos', 'Pique', 'Puyol', 'Capdevila', 'Xabi Alonso', 'Busquets', 'Xavi Hernandez', 'Pedrito',
'Iniesta', 'Villa'])
print "Spanish Football Players: \n%s" % spanishPlayers
Como salida tenemos lo siguiente:
Spanish Football Players:
0 Casillas
1 Ramos
2 Pique
3 Puyol
4 Capdevila
5 Xabi Alonso
6 Busquets
7 Xavi Hernandez
8 Pedrito
9 Iniesta
10 Villa
dtype: object
También podemos crearnos una estructura de datos "Series" a partir de una lista o de un diccionario. Si la construimos a partir de una lista nos pondrá los índices por defecto y si lo creamos a partir de un diccionario, pondrá como índices las claves. Vamos a ver a continuación un ejemplo de como crear una Serie a partir de un diccionario y además vamos a ver como insertar en esta serie un nuevo elemento:
dictPlayers = {1: 'Casillas', 15: 'Ramos', 3: 'Pique', 5: 'Puyol', 11: 'Capdevila', 14: 'Xabi Alonso',
16: 'Busquets', 8: 'Xavi Hernandez', 18: 'Pedrito', 6: 'Iniesta', 7: 'Villa'}
players2series = pd.Series(dictPlayers)
# Insert new player
players2series[10] = 'Cesc'
print "Spanish Football Players through dictionary: \n%s" % players2series
Como salida a este fragmento de código tenemos lo siguiente:
Spanish Football Players through dictionary:
1 Casillas
3 Pique
5 Puyol
6 Iniesta
7 Villa
8 Xavi Hernandez
11 Capdevila
14 Xabi Alonso
15 Ramos
16 Busquets
18 Pedrito
10 Cesc
dtype: object
Vamos a pasar a continuación a ver un ejemplo con la estructura de datos "DataFrame«. Como ya se ha comentado es una estructura de datos similar a una tabla de una base de datos relacional, una tabla de excel, etc. y como tal se pueden hacer muchas operaciones como las que se harían con consultas a tablas de bases de datos o en excel (este tipo de operaciones se pueden ver en los siguiente tutoriales: "DataFrame: Lectura y Escritura, Mergeo de DataFrame's y GroupBy" y "Operaciones de "Pivot_table" con DataFrame's").
Para construir un DataFrame se puede hacer de diferentes formas, como por ejemplo a partir de una lista, de un diccionario, de una Serie, de otro DataFrame, leyendo una tabla excel, csv, etc. Vamos a ver a continuación como construiríamos un DataFrame con datos de los integrantes de la selección Española de Fútbol:
spanishPlayersDF = pd.DataFrame(
{
'name': ['Casillas', 'Ramos', 'Pique', 'Puyol', 'Capdevila', 'Xabi Alonso', 'Busquets', 'Xavi Hernandez',
'Pedrito', 'Iniesta', 'Villa'],
'demarcation': ['Goalkeeper', 'Right back', 'Centre-back', 'Centre-back', 'Left back', 'Defensive midfield',
'Defensive midfield', 'Midfielder', 'Left winger', 'Right winger', 'Centre forward'],
'team': ['Real Madrid', 'Real Madrid', 'FC Barcelona', 'FC Barcelona', 'Villareal', 'Real Madrid',
'FC Barcelona', 'FC Barcelona', 'FC Barcelona', 'FC Barcelona', 'FC Barcelona']
}, columns=['name', 'demarcation', 'team'], index=[1, 15, 3, 5, 11, 14, 16, 8, 18, 6, 7]
)
Vemos como en primer lugar le pasamos como parámetro un diccionario que contiene como claves los nombres de las columnas y como valores una lista con los datos que tendrá cada columna de la tupla. En segundo lugar le pasamos el nombre de las columnas que coinciden con las claves del diccionario con los datos y por último el índice de cada una de las tuplas. Si imprimimos el contenido de este DataFrame tenemos los siguiente:
name demarcation team
1 Casillas Goalkeeper Real Madrid
15 Ramos Right back Real Madrid
3 Pique Centre-back FC Barcelona
5 Puyol Centre-back FC Barcelona
11 Capdevila Left back Villareal
14 Xabi Alonso Defensive midfield Real Madrid
16 Busquets Defensive midfield FC Barcelona
8 Xavi Hernandez Midfielder FC Barcelona
18 Pedrito Left winger FC Barcelona
6 Iniesta Right winger FC Barcelona
7 Villa Centre forward FC Barcelona
Como resultado tenemos una estructura de dato similar a la de una tabla de una base de datos relacional o de un documento excel o csv. Con esta estructura de datos se pueden hacer muchas operaciones como las que haríamos en una base de datos o en un documento excel.
Por último vamos a ver como insertar un nuevo elemento en este DataFrame, que lo haríamos de la siguiente manera con el método "loc()":
# Insert new player spanishPlayersDF.loc[10] = ['Cesc', 'Forward', 'Arsenal']
Vemos que le indicamos el índice que tiene que tener en la tabla (como lo haríamos con un diccionario) y luego con una lista indicamos los valores de las columnas. Como resultado tendríamos un nuevo elemento de el DataFrame:
Spanish Football Players DataFrame:
name demarcation team
1 Casillas Goalkeeper Real Madrid
15 Ramos Right back Real Madrid
3 Pique Centre-back FC Barcelona
5 Puyol Centre-back FC Barcelona
11 Capdevila Left back Villareal
14 Xabi Alonso Defensive midfield Real Madrid
16 Busquets Defensive midfield FC Barcelona
8 Xavi Hernandez Midfielder FC Barcelona
18 Pedrito Left winger FC Barcelona
6 Iniesta Right winger FC Barcelona
7 Villa Centre forward FC Barcelona
10 Cesc Forward Arsenal
CONCLUSIONES:
La finalidad de este tutorial es dar a conocer las dos estructuras de datos (Series y DataFrame’s) más utilizadas de la librería Pandas y como tal se han realizado ejemplos muy básicos. Se pueden hacer muchísimas cosas más; algunas de las cuales las explicamos en los tutoriales "DataFrame: Lectura y Escritura, Mergeo de DataFrame's y GroupBy" y "Operaciones de "Pivot_table" con DataFrame's". Si queréis saber más sobre la librería de Pandas lo podéis hacer mirando en el siguiente enlace su extensa y detallada documentación: pandas documentation — pandas 3.0.6 documentation
«Pandas en Python, con ejemplos -Parte I- Introducción», de Ricardo Moya en jarroba.com, con licencia Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0. Obra registrada en Safe Creative.

Te puede interesar
MCP sin estado: qué cambia en la especificación 2026-07-28
La especificación MCP 2026-07-28 quita el saludo y las sesiones. Qué cambia en un servidor HTTP y cómo el de jarroba.com habla las dos versiones.
«Lo que funciona no se toca» y otras frases que ya no cuelan
Cuatro frases-excusa de empresa, por qué el cálculo ha cambiado con la IA, y qué hacer si estás atrapado en una organización inmovilista.
Comentarios (10)
-
-
Pandas lo puedes instalar con PIP de Python (explicamos como usar y configurar PIP en https://jarroba.com/curso-de-python-6-bilbiotecas-paquetes/)
Sublime Text es casi un IDE que sirve para escribir código que puede ser Python u otro. Aunque con los plugins adecuados puede convertirse en un IDE de Python.
En resumen rápido, Pandas se instala en la carpeta Lib de Python mediante PIP (más información sobre los entornos de Python en https://jarroba.com/entornos-de-python-anaconda-y-comun/), y Sublime Text es otra cosa que no tiene que ver con Python (aunque se pueda usar para escribir código de Python, al igual que se puede usar el bloc de notas)
-
-
Utililizando SublimeText, con el ejemplo me aparece el siguiente error:
Traceback (most recent call last):
File «serie-pandas.py», line 6, in
serie = pd.Series(data, index=index)
NameError: name ‘data’ is not defined***Repl Closed***
-
Buenas Frank,
Justo esa línea era de introducción al siguiente código. Es decir, que «data» es un listado con los datos que ahí no está definido.
Para utilizar el código anterior tienes que definir «data» e «index» como:data = ['Casillas', 'Ramos', 'Pique', 'Puyol', 'Capdevila', 'Xabi Alonso', 'Busquets', 'Xavi Hernandez', 'Pedrito', 'Iniesta', 'Villa'] index=[1, 15, 3, 5, 11, 14, 16, 8, 18, 6, 7] serie = pd.Series(data, index=index)
-
-
mi pregunta viene en que si quiero hacer una consulta llamando nombre especifico de tres columnos diferentes, algo asi como que tengo 10 columnas pero solo quiero llamar a las que se llamen maria y tengan 20 años, que me salga sus demas infos !! :c
-
hola! Gracias por esta gran aportación. Mi duda es como puedo agregar una columna a la base de datos (Dataframe), por ejemplo quiero agregar en la tabla una columna con el número total de goles que cada jugador tiene.
-



Deja un comentario