6/9/25, 9:26 AM Ap S10 - Pandas - Colab
PANDAS
Es un biblioteca, estos son programas que hizo otra persona y podemos usar. La ventaja es que nos ahorramos escribir codigo y usamos
algo que esta comprobando que funciona, "No hace falta reinventar la rueda"
-Es una biblioteca que nos ayuda a ANALIZAR, TRABAJAR, LIMPIAR y TRANSFORMAR con datos que tengamos.
-La estructura principal se llama DATA FRAME, se asemeja a una tabla con datos, conceptualmente parecido a un excel/sheets.
1. Importamos pandas con el alias pd.
import pandas as pd
2. Mostramos la versión de pandas que importamos.
pd.__version__
'2.2.2'
3. Imaginemos que tenemos el siguiente diccionario data y la lista labels:
data = {'animal': ['cat', 'cat', 'snake', 'dog', 'dog', 'cat', 'snake', 'cat',
'dog', 'dog'],
'age': [2.5, 3, 0.5, None, 5, 2, 4.5, None, 7, 3],
'visits': [1, 3, 2, 3, 2, 3, 1, 1, 2, 1],
'priority': ['yes', 'yes', 'no', 'yes', 'no', 'no', 'no', 'yes', 'no',
'no']}
labels = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
Vamos a crear un DataFrame ' df ' a partir del diccionario 'data' usando 'labels' como índice.
data = {'animal': ['cat', 'cat', 'snake', 'dog', 'dog', 'cat', 'snake', 'cat',
'dog', 'dog'],
'age': [2.5, 3, 0.5, None, 5, 2, 4.5, None, 7, 3],
'visits': [1, 3, 2, 3, 2, 3, 1, 1, 2, 1],
'priority': ['yes', 'yes', 'no', 'yes', 'no', 'no', 'no', 'yes', 'no',
'no']}
labels = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
df = pd.DataFrame(data, index=labels)
df # Esto lo ponemos para mostrarlo
animal age visits priority
a cat 2.5 1 yes
b cat 3.0 3 yes
c snake 0.5 2 no
d dog NaN 3 yes
e dog 5.0 2 no
f cat 2.0 3 no
g snake 4.5 1 no
h cat NaN 1 yes
i dog 7.0 2 no
j dog 3.0 1 no
Start coding or generate with AI.
' df ' es el nombre que le asignamos al data frame de panda. Luego del = ponemos 'pd' para llamar a PANDA y .DataFrame es la funcion de
PANDA.
https://colab.research.google.com/drive/1VW8PJ53Z3-68mJwfaZQDPdsqOFnUjOlY#scrollTo=rrpft1Oj6TuT&printMode=true 1/7
6/9/25, 9:26 AM Ap S10 - Pandas - Colab
Luego dentro del parentesis incluimos los elementos a volcar en el dataframe -en este caso el diccionario 'data'- y luego la lista 'labels' en
formate 'index='
4. Mostramos información que resuma al DataFrame
df.info() nos devuelve información sobre el DataFrame incluidos sus índices y columnas, valores no nulos y uso de memoria
df.info()
<class 'pandas.core.frame.DataFrame'>
Index: 10 entries, a to j
Data columns (total 4 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 animal 10 non-null object
1 age 8 non-null float64
2 visits 10 non-null int64
3 priority 10 non-null object
dtypes: float64(1), int64(1), object(2)
memory usage: 700.0+ bytes
Otra forma de obtener algun tipo de información del DataFrame es utilizando la función describe la cual devuelve una serie con un resumen
descriptivo que incluye el número de datos, su suma, el mínimo, el máximo, la media, la desviación típica y los cuartile
df.describe()
age visits
count 8.000000 10.000000
mean 3.437500 1.900000
std 2.007797 0.875595
min 0.500000 1.000000
25% 2.375000 1.000000
50% 3.000000 2.000000
75% 4.625000 2.750000
max 7.000000 3.000000
5. df.head(n) Devuelve las primeras n filas del DataFrame df En el caso de no especificarlo, nos devuelve las primeras 5. Mostramos las
primeras 3 filas del DataFrame df.
NOTA; si le pido mas de las filas que hay nos devuelve las que existen y el faltante lo ignora
df.head(3)
animal age visits priority
a cat 2.5 1 yes
b cat 3.0 3 yes
c snake 0.5 2 no
'.iloc[:]' es una lista, le digo desde que columna quiero y cuantas quiero.
df.iloc[:3]
# Otra forma
animal age visits priority
a cat 2.5 1 yes
b cat 3.0 3 yes
c snake 0.5 2 no
https://colab.research.google.com/drive/1VW8PJ53Z3-68mJwfaZQDPdsqOFnUjOlY#scrollTo=rrpft1Oj6TuT&printMode=true 2/7
6/9/25, 9:26 AM Ap S10 - Pandas - Colab
6. Si queremos solamente mostrar las columnas 'animal' y 'age' columns del DataFrame df. Vamos a utilizar df.loc[filas, columnas] lo que
devuelve un DataFrame con los elementos de las filas de la lista filas y las columnas de la lista columnas. Si queremos que muestre
todas las columnas podemos poner : en su lugar.
df.loc[['a', 'j'], ['animal', 'age']]
animal age
a cat 2.5
j dog 3.0
Otra manera puede ser mediante el uso de doble corchete. En este caso no especificamos la cantidad de filas entonces nos muestra todas
por defecto.
# Otra manera
df[['animal', 'age']]
animal age
a cat 2.5
b cat 3.0
c snake 0.5
d dog NaN
e dog 5.0
f cat 2.0
g snake 4.5
h cat NaN
i dog 7.0
j dog 3.0
7. Ahora seleccionemos las filas[3, 4, 8] y columnas ['animal', 'age']
df.loc[df.index[[3, 4, 8]], ['animal', 'age']]
animal age
d dog NaN
e dog 5.0
i dog 7.0
8. Para filtrar los elementos de nuestra tabla lo que hacemos es poner una condición dentro de los corchetes. Por ejemplo, podemos
seleccionar solamente las filas que tengan número de visitas mayores que 3.
df[df['visits'] > 2]
#quiero que del data frame[me muestres los elementos[de la columna'visits'] elemento condicional '>' 2]
animal age visits priority
b cat 3.0 3 yes
d dog NaN 3 yes
f cat 20 3 no
9. Seleccionamos las filas que le falten los datos de la edad, es decir que su valor sea NaN. En este caso la función isnull() se usa como
condición que devuelve True si el valor de la columna es nulo o NaN.
https://colab.research.google.com/drive/1VW8PJ53Z3-68mJwfaZQDPdsqOFnUjOlY#scrollTo=rrpft1Oj6TuT&printMode=true 3/7
6/9/25, 9:26 AM Ap S10 - Pandas - Colab
df[df['age'].isnull()]
animal age visits priority
d dog NaN 3 yes
h cat NaN 1 yes
10. Podemos poner condiciones más complejas dentro de los corchetes. Seleccionamos las filas donde el animal sea cat y la edad es
menor a 3.
df[(df['animal'] == 'cat') & (df['age'] < 3)]
#NOTA IMPORTANTE: en PANDA, el 'and' -> '&', el 'or' -> '|' y el 'not' -> '~'
animal age visits priority
a cat 2.5 1 yes
f cat 2.0 3 no
11. La función between(a, b) elige los elementos que se encuentren en el rango [a,b]. Sería el equivalente de hacer columna >= a & columna
<= b. Seleccionamos las filas con edad entre 2 y 4 (inclusive).
df[df['age'].between(2, 4)]
animal age visits priority
a cat 2.5 1 yes
b cat 3.0 3 yes
f cat 2.0 3 no
j dog 3.0 1 no
14. Si queremos cambiar el valor de celdas específicas usamos el = como si fuera una variable normal. Cambiemos la edad en la fila 'f' a
1.5.
df.loc['f', 'age'] = 1.5
df
animal age visits priority
a cat 2.5 1 yes
b cat 3.0 3 yes
c snake 0.5 2 no
d dog NaN 3 yes
e dog 5.0 2 no
f cat 1.5 3 no
g snake 4.5 1 no
h cat NaN 1 yes
i dog 7.0 2 no
j dog 3.0 1 no
15. La función sum() suma todos los valores de la columna seleccionada. Sumemos la cantidad de visitas de todas las filas de df (numero
total de visitas).
df['visits'].sum()
np.int64(19)
https://colab.research.google.com/drive/1VW8PJ53Z3-68mJwfaZQDPdsqOFnUjOlY#scrollTo=rrpft1Oj6TuT&printMode=true 4/7
6/9/25, 9:26 AM Ap S10 - Pandas - Colab
16. Calculemos la media de las edades de los animales de df. En este caso groupby agrupa las filas según el animal y con la función mean
se calcula el promedio de la edad.
df.groupby('animal')['age'].mean()
#agrupa por ()'variable') y calcula de ['columna'] el .mean() (promedio).
age
animal
cat 2.333333
dog 5.000000
snake 2.500000
dtype: float64
17. Agreguemos una nueva fila 'k' a df con los valores que queramos para cada columna.
df.loc['k'] = ['dog', 5.5, 2, 'no']
df
animal age visits priority
a cat 2.5 1 yes
b cat 3.0 3 yes
c snake 0.5 2 no
d dog NaN 3 yes
e dog 5.0 2 no
f cat 1.5 3 no
g snake 4.5 1 no
h cat NaN 1 yes
i dog 7.0 2 no
j dog 3.0 1 no
k dog 5.5 2 no
Ahora borremos la columna nueva para volver a tener el DataFrame original. La función drop recibe el índice de la fila que se desea eliminar
df = df.drop('k')
df
animal age visits priority
a cat 2.5 1 yes
b cat 3.0 3 yes
c snake 0.5 2 no
d dog NaN 3 yes
e dog 5.0 2 no
f cat 1.5 3 no
g snake 4.5 1 no
h cat NaN 1 yes
i dog 7.0 2 no
j dog 30 1 no
18. La función value_counts() devuelve cuantas veces aparece cada valor único para una columna específica. Contemos qué cantidad de
animales hay en el df.
https://colab.research.google.com/drive/1VW8PJ53Z3-68mJwfaZQDPdsqOFnUjOlY#scrollTo=rrpft1Oj6TuT&printMode=true 5/7
6/9/25, 9:26 AM Ap S10 - Pandas - Colab
df['animal'].value_counts()
count
animal
cat 4
dog 4
snake 2
dtype: int64
19. La función sort_values(by, ascending) ordena la tabla con el criterio que pidamos. En el parámetro by ponemos una lista con las
columnas que queremos usar para ordenar y en ascending ponemos una lista de booleanos donde indicamos si queremos que el
ordenamiento de la lista anterior sea ascendente o no. Entonces, ordenemos el df primero a partir de los valores de edad 'age' en orden
descendente , luego por el valor de las visitas 'visits' en orden ascendente (la fila i debería estar primero, y la d última).
df.sort_values(by=['age', 'visits'], ascending=[False, True])
#le digo, ordena por 'age', si age es igual, decidi por 'visits', de manera ascending=[False, True]
# False y True refieren a si es de manera ascendente o no. Primero 'age' luego 'visits'
animal age visits priority
i dog 7.0 2 no
e dog 5.0 2 no
g snake 4.5 1 no
j dog 3.0 1 no
b cat 3.0 3 yes
a cat 2.5 1 yes
f cat 1.5 3 no
c snake 0.5 2 no
h cat NaN 1 yes
d dog NaN 3 yes
20. Con map podemos transformar los valores de columna entera, le pasamos un diccionario con elementos del tipo {valor_viejo:
valor_nuevo}. La columna 'priority' contiene valores 'yes' y 'no'. Vamos a reemplazarlos por: 'yes' como True y 'no' como False.
df['priority'] = df['priority'].map({'yes': True, 'no': False})
df
# le digo que del df['variable'] es igual a '=' df['variable'] mapeada '.map()'
# y dentro de ese map ({remplaso 'yes' por ':' 'True', 'no' : 'False'})
https://colab.research.google.com/drive/1VW8PJ53Z3-68mJwfaZQDPdsqOFnUjOlY#scrollTo=rrpft1Oj6TuT&printMode=true 6/7
6/9/25, 9:26 AM Ap S10 - Pandas - Colab
animal age visits priority
a cat 2.5 1 True
b cat 3.0 3 True
c snake 0.5 2 False
d dog NaN 3 True
e dog 5.0 2 False
f cat 1.5 3 False
g snake 4.5 1 False
h cat NaN 1 True
i dog 7.0 2 False
j dog 3.0 1 False
21. En la columna 'animal' cambiemos 'snake' por 'python'. Podemos usar map como antes o podemos usar replace que recibe primero el
valor viejo, después el valor nuevo, y realizará el reemplazo.
df['animal'] = df['animal'].replace('snake', 'python')
df
animal age visits priority
a cat 2.5 1 True
b cat 3.0 3 True
c python 0.5 2 False
d dog NaN 3 True
e dog 5.0 2 False
f cat 1.5 3 False
g python 4.5 1 False
h cat NaN 1 True
i dog 7.0 2 False
j dog 3.0 1 False
Double-click (or enter) to edit
https://colab.research.google.com/drive/1VW8PJ53Z3-68mJwfaZQDPdsqOFnUjOlY#scrollTo=rrpft1Oj6TuT&printMode=true 7/7