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: