Objetos¶
En un nivel muy básico, los objetos de Pandas se pueden considerar como versiones mejoradas de matrices de NumPy
en las que las filas y columnas se identifican con etiquetas en lugar de simples índices enteros.
Tipo de Objetos¶
Pandas Series¶
Un objeto de tipo Series es un array unidimensional etiquetado que puede contener cualquier tipo de dato, como enteros, números decimales, cadenas de texto o incluso objetos de Python. Es una estructura de datos fundamental en Pandas y es similar a un array unidimensional de NumPy, pero con índices etiquetados que permiten una manipulación de datos fácil e intuitiva.
Un objeto de tipo Series de Pandas puede ser creado a partir de una lista, tupla, array de NumPy, o incluso de un diccionario. Por ejemplo, el siguiente código crea un objeto Series a partir de una lista de números enteros:
import pandas as pd
s = pd.Series([1, 2, 3, 4, 5])
s
0 1 1 2 2 3 3 4 4 5 dtype: int64
En la salida, el objeto Series se imprime con los valores de la lista de datos y sus índices correspondientes (del 0 al 4). El tipo de dato del objeto Series es int64
, que es un tipo de dato entero de 64 bits. Ahora, podemos acceder con los valores (values
) y los atributos de índice (index
).
Para acceder a los valores de la serie, ocupamos el comando values
:
# valores
s.values
array([1, 2, 3, 4, 5], dtype=int64)
Para acceder a los valores del índice, ocupamos el comando index
:
# indice
s.index
RangeIndex(start=0, stop=5, step=1)
Por otro lado, puedes especificar un índice personalizado para una serie de Pandas utilizando el parámetro index al crear la serie. Por ejemplo:
data = [10, 20, 30, 40, 50]
index = ['a', 'b', 'c', 'd', 'e']
s = pd.Series(data, index=index)
s
a 10 b 20 c 30 d 40 e 50 dtype: int64
En este caso, el índice de la serie se ha definido como una lista de cadenas de texto. Al especificar un índice personalizado, se puede utilizar ese índice para seleccionar elementos de la serie en lugar del índice numérico predeterminado.
Pandas Dataframes¶
Un objeto DataFrame es una estructura de datos tabular bidimensional, similar a una hoja de cálculo de Excel o una tabla de una base de datos relacional. Consiste en un conjunto ordenado de columnas, donde cada columna puede ser de un tipo de dato diferente (como enteros, números decimales o cadenas de texto), y un índice que identifica cada una de las filas.
Los datos en un DataFrame se almacenan en una o varias estructuras de tipo Series de Pandas, una para cada columna del DataFrame. Cada serie de columnas tiene su propio nombre, y los nombres de las columnas se utilizan como etiquetas para acceder a los datos de esa columna. El índice de un DataFrame es un objeto de tipo Series que identifica cada una de las filas.
Un objeto DataFrame de Pandas se puede crear a partir de una amplia variedad de fuentes de datos:
- listas
- diccionarios
- arrays de NumPy
- archivos CSV
- bases de datos
- muchas otras
Aquí hay un ejemplo de cómo crear un DataFrame a partir de un diccionario:
data = {'nombre': ['Juan', 'Ana', 'Pedro', 'Maria'],
'edad': [25, 31, 19, 42],
'ciudad': ['Madrid', 'Barcelona', 'Valencia', 'Sevilla']}
df = pd.DataFrame(data)
df
nombre | edad | ciudad | |
---|---|---|---|
0 | Juan | 25 | Madrid |
1 | Ana | 31 | Barcelona |
2 | Pedro | 19 | Valencia |
3 | Maria | 42 | Sevilla |
Este código crea un DataFrame a partir de un diccionario que contiene tres columnas: nombre, edad y ciudad.
Al igual que los objetos Series, los Dataframes tienen índices y valores.
# valores
df.values
array([['Juan', 25, 'Madrid'], ['Ana', 31, 'Barcelona'], ['Pedro', 19, 'Valencia'], ['Maria', 42, 'Sevilla']], dtype=object)
# indice
df.index
RangeIndex(start=0, stop=4, step=1)
Adicionalmente, los objetos Dataframe tienen el atributo columns
, objeto que contiene las etiquetas de las columnas:
# columnas
df.columns
Index(['nombre', 'edad', 'ciudad'], dtype='object')