Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Funciones principales de Pandas

17/24
Recursos

Aportes 11

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Un pequeño aporte por si requieren cambiar el tipo de variable de una columna en su DataFrame. En mi caso convertí las tipo Object a String.

Una función que me gusta utilizar con los datos y saber si un feature se encuentra ligeramente sesgado o no, es usando el método skew() de pandas

csv['User Rating'].skew()
>> -1.5075394905940473

Una función interesante puede ser groupby en unión con size. En este caso quise responder a la pregunta ¿Cuántos libros son ficción?

df.groupby('Genre').size()

Genre
Fiction 240
Non Fiction 311
dtype: int64

Funciones principales de Panadas 🐼

.head() → trae los primeros datos
.info() → Columnas, indices, cuales noson nulos, tipo de dato que maneja
.describe() → Solo de las columnas numericas me arroja datos estadisticos [ media,max,miun,mediana,etc ]
.memory_usage() → memoria utilizada
.value_counts() → cuenta valores de una columna
.drop_duplicates() → elimina los valores repetidos
.sort_values( columna para ordenar ) → Se puede ordenar de forma descendiente con la bandera ascending=False


Extras 👇🏻

···· Probando el drop_duplicate

  1. Duplicamos valores
    ···

    ···
    2 Elimando los duplicados
    ···

    👆🏻 Importante lo iltimo [El drop solo, lo elimina en forma visual]
    ···
    👇🏻 Si quieren eliminarlo completamente del DF
    ···

    ···
    Dt extra del extra 😃
    ···
    Si quieren mantener una copia tiene que usar keep=
    ···

Re laaarga pero espero que les sirva [AL FINAL DEL CURSO subo el Notion y G colab por si lo quieren]

Funciones principales de Pandas

  • Mostrar las primeras dos lineas de registro
import pandas as pd
df_books = pd.read_csv('bestsellers-with-categories.csv', sep=',', header=0)
df_books.head(2) ---> #muestra los primeros dos registros del dataFrame 
  • Mostrar los diferentes datos que contiene el dataFrame
df_books.info()
---> 
RangeIndex: 550 entries, 0 to 549        #numero de registro
Data columns (total 7 columns):          #total de columnas
 #   Column       Non-Null Count  Dtype  #tipos de cada columna
---  ------       --------------  -----  
 0   Name         550 non-null    object 
 1   Author       550 non-null    object 
 2   User Rating  550 non-null    float64
 3   Reviews      550 non-null    int64  
 4   Price        550 non-null    int64  
 5   Year         550 non-null    int64  
 6   Genre        550 non-null    object 
dtypes: float64(1), int64(3), object(3)
memory usage: 30.2+ KB
  • Obtener diferentes datos estadisticos de las columnas numericas.
df_books.describe()
--->  User.Rating  Reviews   Price     Year
count    550       550       550       550
mean    4.618   11953.281    13.1      2014
std     0.226   11731.132    10.84     3.165
min      3.3        37         0       2009
25%      4.5      4058         7       2011
50%      4.7      8580        11       2014
75%      4.8    17253.25      16       2017
max      4.9      87841      105       2019 
  • Mostrar los ultimos 5 registros del dataFrame
df_books.tail()
---> #muestra los ultimos 5 registros
  • Obtener el uso de la memoria de cada columna
df_books.memory_usage(deep=True)
--->
Index            128
Name           59737
Author         39078
User Rating     4400
Reviews         4400
Price           4400
Year            4400
Genre          36440
dtype: int64
  • Obtener la informacion de un registro especifico
df_books.iloc[0]
---> #obtiene la informacion del registro con indice 0
Name           10-Day Green Smoothie Cleanse
Author                              JJ Smith
User Rating                              4.7
Reviews                                17350
Price                                      8
Year                                    2016
Genre                            Non Fiction
Name: 0, dtype: object
  • Eliminar registros duplicados
df_books.drop_duplicates()
  • Elimina el primer registro duplicado del dataFrame (orden ascendente)
df_books.drop_duplicates(keep='last')
  • Ordenar los registros segun valores de la columna (orden ascendente)
df_books.sort_values('Year')
---> #ordena los valores de menor a mayor segun el año
  • Ordenar los registros segun valores de la columna(orden descendente)
df_books.sort_values('Year', ascending=False)
---> #ordena los valores de mayor a menor segun el año

Esta clase ES lo que se pide en una prueba técnica. A PRACTICAR SE HA DICHO!

Hallazgos:

  • En ocasiones, cuando cargamos archivos de Kaggle y ponemos el parámetro sep = ' , ' no funciona
    Para solucionar esto se pone sep = ' ; '

.

  • También podemos poner una columna como index con .set_idex(#nombre de la columna)

👾

Las funciones ISIN y WHERE son muy útiles en mi opinión.
Si trabajamos con los autores del dataframe de la clase. Vemos la ocurrencia de cada autor.

df_books = pd.read_csv('/content/VIDEO 12 bestsellers-with-categories.csv',sep=',',header=0)
df_books['Author'].value_counts()

Jeff Kinney 12
Gary Chapman 11
Rick Riordan 11
Suzanne Collins 11
American Psychological Association 10

Keith Richards 1
Chris Cleave 1
Alice Schertle 1
Celeste Ng 1
Adam Gasiewski 1
Name: Author, Length: 248, dtype: int64

Con ISIN podemos filtrar el dataframe para tener un dataframe de determinados autores.

df_books[df_books.Author.isin(['Adam Gasiewski','Celeste Ng','Alice Schertle','Chris Cleave'])]

WHERE dada una condición asigna determinado valor a los registros que no lo cumplen.
Para nuestro caso los registros que no tienen estos autores en la columna de autores les asignamos el valor otros autores.

newdf = df_books.where(df_books.Author.isin(['Jeff Kinney','Gary Chapman','Rick Riordan','Suzanne Collins']),'otros autores')

Entonces ahora tenemos un dataframe con 4 autores diferenciados de los demas. Si queremos hacer estadisticas con respecto al resto.

newdf['Author'].value_counts()

otros autores 505
Jeff Kinney 12
Suzanne Collins 11
Rick Riordan 11
Gary Chapman 11
Name: Author, dtype: int64


Esta sentencia me permite ver los registros que tengan la palabra clave que desee buscar

El metodo combine_first() esta muy interesante ya que toma dos dataframes y completa los valores que hacen falta con el otro (el dataFrame que uno elija primero). Aqui un ejemplo


Resultado!!

Además de la función describe, se puede consultar el valor estadístico en cuestión para cada columna individualmente: