martes, 23 de diciembre de 2025

Fundamentación de Pandas. Pyhton para ciencia de datos

 

Los fundamentos de los pandas

Fuente: Coursera & Google

Atributos y métodos: los atributos son características de un DataFrame, mientras que los métodos son funciones que realizan acciones en el DataFrame, ambos esenciales para la manipulación de datos.

Serie: una serie es una matriz etiquetada unidimensional que puede contener cualquier tipo de datos, similar a una columna en una hoja de cálculo.

DataFrame: un DataFrame es una estructura de datos bidimensional etiquetada, esencialmente una tabla u hoja de cálculo, donde cada columna y fila está representada por una Serie.

Selección de filas y columnas: la selección de filas y columnas se puede realizar usando loc[] e iloc[], que permiten una manipulación intuitiva de datos basada en etiquetas o posiciones de índice.

Usted ha aprendido que Python tiene muchas bibliotecas y paquetes de código abierto-incluyendo NumPy y pandas -que lo convierten en uno de los lenguajes de codificación más útiles. En esta lectura, revisarás los fundamentos de los dataframes de pandas y aprenderás más sobre cómo trabajar con ellos. Comprender los fundamentos de Pandas es esencial para convertirse en un profesional de datos capaz y competente.

Estructuras de los datos primarios

Pandas tiene dos estructuras de datos primarias: Series y DataFrame.

  • Series: Una Serie es un array unidimensional etiquetado que puede contener cualquier tipo de datos. Es similar a una columna en una hoja de cálculo o a un array unidimensional de NumPy. Cada elemento de una serie tiene una etiqueta asociada llamada índice. El índice permite una manipulación de datos más eficaz e intuitiva, ya que facilita la referencia a elementos específicos de los datos.

  • DataFrame: Un dataframe es una estructura de datos bidimensional etiquetada-esencialmente una tabla u hoja de cálculo-donde cada columna y fila está representada por una Serie.

Crear un DataFrame

Para usar pandas en tu Notebook, primero impórtalo. Similar a NumPy, pandas tiene su propio alias estándar, pd, que es utilizado por profesionales de datos de todo el mundo:

>>import pandas as pd

Una vez que hayas importado pandas a tu entorno de trabajo, crea un dataframe. Estas son algunas de las formas de crear un objeto DataFrame en un Notebook de Jupyter.

FROM un diccionario:

>>d = {'col1': [12], 'col2': [34]}
>>df = pd.DataFrame(data=d)
>>df

>>>
col1 col2 0 1 3 1 2 4

FROM un array numpy:

>>df2 = pd.DataFrame(np.array([[123], [456], [789]]),
                  columns=['a''b''c'])
>>df2

>>>
a b c 0 1 2 3 1 4 5 6 2 7 8 9

FROM un Archivo CSV (valores separados por comas):

(Ten en cuenta que esta celda no se ejecutará, pero se proporciona para ilustrar la sintaxis)

>>df3 = pd.read_csv('/file_path/file_name.csv')

Atributos y métodos

La clase DataFrame es potente y práctica porque viene con un conjunto de características incorporadas que simplifican las tareas comunes de análisis de datos. Estas funciones se denominan atributos y métodos. Un atributo es un valor asociado a un objeto o clase al que se hace referencia por su nombre mediante expresiones de puntos. Un método es una función que se define dentro del cuerpo de una clase y que normalmente realiza una acción. Una forma más sencilla de pensar en la distinción entre atributos y métodos es recordar que los atributos son características del objeto, mientras que los métodos son acciones u operaciones.

Atributos comunes de DataFrame

Los profesionales de los datos utilizan atributos y métodos constantemente. Algunos de los atributos más utilizados de DataFrame son:

Atributo

Descripción

columnas

Devuelve las etiquetas de las columnas del marco de datos

dtypes

Devuelve los tipos de datos del marco de datos

iloc

Accede a un grupo de filas y columnas utilizando una indexación basada en números enteros

loc

Accede a un grupo de filas y columnas por etiqueta(s) o una matriz booleana

forma

Devuelve una tupla que representa la dimensionalidad del marco de datos

vALUE

Devuelve una representación NumPy del marco de datos

Métodos comunes de DataFrame

Algunos de los métodos más utilizados de DataFrame son:

Método

Descripción

aplicar()

Aplica una función sobre un eje del marco de datos

copiar()

Hace una copia de los índices y datos del dataframe

describir()

Devuelve estadísticas descriptivas del marco de datos, incluidos los valores mínimo, máximo, medio y percentil de sus columnas numéricas; el recuento de filas; y los tipos de datos

eliminar()

Elimina las etiquetas especificadas de las filas o columnas

groupby()

Divide el marco de datos, aplica una función y combina los resultados

head(n=5)

Devuelve las n primeras filas del marco de datos (por defecto=5)

info()

Devuelve un resumen conciso del marco de datos

isna()

Devuelve un marco de datos booleano del mismo tamaño que indica si cada valor es nulo (también puede utilizar isnull() como alias)

ordenar_valores()

Ordena por los valores de un eje determinado

recuentos_valores()

Devuelve una serie que contiene los recuentos de filas únicas en el marco de datos

where()

Sustituye los valores del marco de datos cuando una condición dada es falsa

Éstos son sólo algunos de los atributos y métodos más utilizados: ¡hay muchísimos más! Algunos de ellos también se pueden utilizar en los objetos de Pandas Series. Para una lista más detallada, consulte la documentación de Pandas DataFrame, que incluye ejemplos útiles de cómo utilizar cada herramienta.


Sentencias de selección

Una vez que sus datos son leídos en un dataframe, querrá hacer cosas con ellos seleccionando, manipulando y evaluando los datos. En esta sección, aprenderá a seleccionar filas, columnas, combinaciones de filas y columnas y subconjuntos básicos de datos.

Selección de filas

Las filas de un marco de datos se seleccionan por su índice. El índice puede referenciarse por nombre o por posición numérica.

loc[]

loc[] permite seleccionar filas por su nombre. He aquí un ejemplo:

>>df = pd.DataFrame({
>>   'A': ['alpha''apple''arsenic''angel''android'],
>>   'B': [12345],
>>   'C': ['coconut''curse''cassava''cuckoo''clarinet'],
>>   'D': [678910]
>>   },
>>   index=['row_0''row_1''row_2''row_3''row_4'])
>>df

>>>
A B C D row_0 alpha 1 coconut 6 row_1 apple 2 curse 7 row_2 arsenic 3 cassava 8 row_3 angel 4 cuckoo 9 row_4 android 5 clarinet 10

El índice de filas del marco de datos contiene los nombres de las filas.
Utilice loc[] para seleccionar filas por nombre:

>>print(df.loc['row_1'])

>>>
A apple B 2 C curse D 7 Name: row_1, dtype: object

Si sólo se inserta el nombre del índice de la fila entre paréntesis, se obtiene un objeto
Series. Si se inserta el nombre del índice de filas como una lista, se obtiene un objeto
DataFrame:

>>print(df.loc[['row_1']])

>>>
A B C D row_1 apple 2 curse 7

Para seleccionar varias filas por nombre, utilice una lista entre paréntesis de selección:

>>print(df.loc[['row_2''row_4']])

>>>
A B C D row_2 arsenic 3 cassava 8 row_4 android 5 clarinet 10

Incluso puede especificar un rango de filas por nombre de índice:

>>print(df.loc['row_0':'row_3'])

>>>
A B C D row_0 alpha 1 coconut 6 row_1 apple 2 curse 7 row_2 arsenic 3 cassava 8 row_3 angel 4 cuckoo 9

Nota: Al utilizar índices con nombre, el rango devuelto incluye el índice final especificado.

iloc[]

iloc[] le permite seleccionar filas por posición numérica, de forma similar a como accedería a los elementos de una lista o una matriz. He aquí un ejemplo.

>> print(df)
>> print()
>> print(df.iloc[1])

>>>
Error on line 1: print(df) ^ IndentationError: unexpected indent

Si se inserta sólo el número de índice de la fila entre paréntesis, se obtiene un objeto
Series. Si inserta el número de índice de la fila como una lista, obtendrá un objeto DataFrame:

>>print(df.iloc[[1]])

>>>
A B C D row_1 apple 2 curse 7

Para seleccionar varias filas por número de índice, utilice una lista entre paréntesis de selección:

>>print(df.iloc[[024]])

>>>
A B C D row_0 alpha 1 coconut 6 row_2 arsenic 3 cassava 8 row_4 android 5 clarinet 10

Especifique un rango de filas por número de índice:

>>print(df.iloc[0:3])

>>>
A B C D row_0 alpha 1 coconut 6 row_1 apple 2 curse 7 row_2 arsenic 3 cassava 8

Tenga en cuenta que esto no incluye la fila del índice tres.

Selección de columnas

Notación entre corchetes

La selección de columnas funciona del mismo modo que la selección de filas, pero también existen algunos atajos para facilitar el proceso. Por ejemplo, para seleccionar una columna individual, basta con ponerla entre paréntesis de selección después del nombre del marco de datos:

>>print(df['C'])

>>>

row_0 coconut row_1 curse row_2 cassava row_3 cuckoo row_4 clarinet Name: C, dtype: object


Y para seleccionar varias columnas, utilice una lista entre paréntesis de selección:

>>print(df[['A''C']])

>>>
A C row_0 alpha coconut row_1 apple curse row_2 arsenic cassava row_3 angel cuckoo row_4 android clarinet

Notación por puntos

Es posible seleccionar columnas utilizando la notación de puntos en lugar de la notación de corchetes. Por ejemplo:

>>print(df.A)

>>>

row_0 alpha row_1 apple row_2 arsenic row_3 angel row_4 android Name: A, dtype: object

La notación por puntos suele ser cómoda y fácil de escribir. Sin embargo, puede dificultar la lectura del código, especialmente en sentencias largas que impliquen el encadenamiento de métodos o la selección basada en condiciones. Por este motivo, a menudo se prefiere la notación entre corchetes.

loc[]

También puede utilizar la notación loc[]:

>>print(df)
>>print()

>>print(df.loc[:, ['B''D']])

>>>
A B C D row_0 alpha 1 coconut 6 row_1 apple 2 curse 7 row_2 arsenic 3 cassava 8 row_3 angel 4 cuckoo 9 row_4 android 5 clarinet 10 B D row_0 1 6 row_1 2 7 row_2 3 8 row_3 4 9 row_4 5 10

Tenga en cuenta que cuando utilice loc[] para seleccionar columnas, debe especificar
también las filas. En este ejemplo, todas las filas se seleccionaron utilizando sólo
dos puntos (:).

iloc[]

Del mismo modo, puede utilizar la notación iloc[]. De nuevo, al utilizar iloc[], debe especificar las filas, incluso si desea seleccionar todas las filas:

>>print(df.iloc[:, [1,3]])

>>>

B D row_0 1 6 row_1 2 7 row_2 3 8 row_3 4 9 row_4 5 10

Seleccionar filas y columnas

Tanto loc[] como iloc[] pueden utilizarse para seleccionar conjuntamente filas y columnas específicas.

loc[]

>>print(df.loc['row_0':'row_2', ['A','C']])

>>>
A C row_0 alpha coconut row_1 apple curse row_2 arsenic cassava

De nuevo, observe que cuando se utiliza loc[] para seleccionar un rango,
el último elemento del rango se incluye en los resultados.

iloc[]

>>print(df.iloc[[24], 0:3])

>>>
A B C row_2 arsenic 3 cassava row_4 android 5 clarinet

Tenga en cuenta que, al utilizar filas con índices con nombre, no puede mezclar
notación numérica y con nombre. Por ejemplo, el siguiente código arrojará un error:

>>print(df.loc[0:3, ['D']])

>>>
Error on line 1: print(df.loc[0:3, ['D']])

Para ver las filas [0:3] en la columna 'D' (si no conoce el número de índice de la columna D),
tendría que utilizar paréntesis de selección después de una sentencia iloc[]:

>># This is most convenient for VIEWING: 
>>print(df.iloc[0:3][['D']])

>># But this is best practice/more stable for assignment/manipulation:
>>print(df.loc[df.index[0:3], 'D'])

>>>
D row_0 6 row_1 7 row_2 8 row_0 6 row_1 7 row_2 8 Name: D, dtype: int64

Sin embargo, en muchos casos (quizá en la mayoría), las filas no tendrán índices con nombre,
sino índices numéricos. En este caso, puede combinar la notación numérica con la notación
con nombre. Por ejemplo, aquí tiene el mismo conjunto de datos, pero con índices numéricos
en lugar de índices con nombre.

>>df = pd.DataFrame({
>>   'A': ['alpha''apple''arsenic''angel''android'],
>>   'B': [12345],
>>   'C': ['coconut''curse''cassava''cuckoo''clarinet'],
>>   'D': [678910]
>>   },
>>   )
>>df

>>>
A B C D 0 alpha 1 coconut 6 1 apple 2 curse 7 2 arsenic 3 cassava 8 3 angel 4 cuckoo 9 4 android 5 clarinet 10

Observe que ahora las filas están enumeradas. Ahora, este código se ejecutará sin error:

>>print(df.loc[0:3, ['D']])

>>>
D 0 6 1 7 2 8 3 9

Puntos clave

Los dataframes de Pandas son una forma práctica de trabajar con datos tabulares. Cada fila y cada columna pueden ser representadas por un pandas Series, que es similar a un array unidimensional. Tanto los dataframes como las series tienen una gran colección de métodos y atributos para realizar tareas comunes y recuperar información. Pandas también tiene su propia notación especial para seleccionar datos. A medida que trabajes más con Pandas, te sentirás más cómodo con esta notación y sus muchas aplicaciones en la ciencia de datos.

Recursos para más información

No hay comentarios.:

Publicar un comentario

Entradas recientes

Fundamentación de Pandas. Pyhton para ciencia de datos

  Los fundamentos de los pandas Fuente: Coursera & Google Atributos y métodos: los atributos son características de un DataFrame , mien...

Entradas Populares