Yo lo estoy trabajando en VS y me daba problema correr el %run.
Esto sucedio ya que no habia instalado en mi ambiente la libreria de jupyter
Les dejo el codigo para que lo puedan solucionar
conda activate your_env
pip install jupyter
tienes que importar algo a mi no sigue salien
do error
Para evitar el problema de %run en VS CODE, instala dentro del env nbformat, con el siguiente comando "pip install nbformat"
Crear una nueva clase para extender Pandas
Creamos una clase y dentro de ella todos lo metodos que necesitemos. Para poder hacer accesible los metodos, utilizamos un decorador de pandas para acceder a la clase mediante una palabra clave
@pd.api.extensions.register_dataframe_accessor("missing")#DecoradorclassMissingMethods:#clasedef__init__(self, pandas_obj): self._df = pandas_obj
defnumber_missing(self):#metodo para contar datos faltantesreturn self._df.isna().sum().sum()defnumber_complet(self):#metodo para contar datos completosreturn self._df.size - self._df.missing.number_missing()
Para acceder a los metodos se procede como sigue:
# actualizamos el dataframe para que se guarden los cambiosdf = pd.DataFrame(df)# accediendo al metodo number_missingdf.missing.number_missing()#accediendo al metodo number_completdf.missing.number_complet()
Gracias por el aporte.
Gracias.
Basicamente esto seria para automatizar algunos procesos en el manejo de datos, con funciones integradas dentro del mismo pandas.
Hola. Nuevamente paso por aquí para los que no leyeron mi aporte en la primera clase del curso. Para los que estén experimentando problemas con el uso de la librería, hice un repositorio para poder clonarlo y tomar el curso usando VSCode. Todo ya fue probado durante todo el curso para asegurarme que funcione. Espero les evite días de frustración y directamente puedan tomar el curso sin ningún problema:
En resumen, para extender el funcionamiento de la API de Pandas:
Crear un decorador con el accesorio para el acceso a los métodos
Crear una clase
Crear los métodos que se requieran en la clase
Gracias..!
Este man se luce pero no explica a detalle, es lo que no me gusta de este profesor.
Que grande el Pandas de Jujutsu xd
A opinión personal creo que es mejor usarlo sin la clase, uso los métodos de manera manual cuando los necesito (de paso practico el código, y si eres principiante es aun mejor, ya que repetir código y saber para que se usa cada cosa te ayudará a futuro), me ahorro código y tiempo, no sé. No le veo mucha utilidad, a menos de que lleves ya tiempo en esto, y estés cansado de repetir código y te lo sepas de memoria
A mí me gusta mucho que usen la clase, hacen el análisis más limpio y realmente es muy útil jeje más bien lo que deberían es arreglar el entorno de deepnote.
Hola! Encontré un error en el método missing_case_summary(). Este método en esencia calcula el valor absoluto y relativo de nulos en cada fila:
Hemos creado 2 columnas de más!!! Las cuales son casey n_missing por lo que este porcentaje está subestimado. Por ejemplo. Si la fila fuese [None, 1, None, 0] El porcentaje de nulos es 50% pero este error de código arrojaría un porcentaje de 2 / 6 ≈ 33%
La solución a este bug es restar 2 al denominador:
Es muy buena práctica modularizar el código para mejorar el flujo de trabajo, así si quiero modificar el código de una función solo tengo que acceder al notebook de las funciones y no buscar en todo el notebook principal.
Me gusta mucho de Jesus que nos comparte las herramientas de su workflow que tiene como data scientist para facilitar el nuestro.
Gracias Andres!
Nanana, panda de jjk. Ahora tienes toda mi atención.
Creo que para el ejercicio no era tan necesario hacer clases. La mejor manera de haberlo explicado debio ser utilizando unicamente:
df.isnull().sum()
Ya que esta funcion extrae la informacion
Hola! Alguien pudo solucionar el problema del %run al trabajar en VS code? Da error cuando se ejecuta.
Parece que varios alumnos tuvieron el mismo problema y ya los solucionaron:
#python _3_11 _para Vcode SOLUCIONA EL %RUNasttokens==2.4.1attrs==23.2.0colorama==0.4.6comm==0.2.2contourpy==1.2.0cycler==0.12.1debugpy==1.8.1decorator==5.1.1executing==2.0.1fastjsonschema==2.19.1fonttools==4.50.0ipykernel==6.29.3ipython==8.22.2jedi==0.19.1jsonschema==4.21.1jsonschema-specifications==2023.12.1jupyter_client==8.6.1jupyter_core==5.7.2kiwisolver==1.4.5matplotlib==3.8.3matplotlib-inline==0.1.6missingno==0.5.2multipledispatch==1.0.0natsort==8.4.0nbformat==5.10.3nest-asyncio==1.6.0numpy==1.26.4packaging==24.0pandas==2.2.1pandas-flavor==0.6.0parso==0.8.3pillow==10.2.0platformdirs==4.2.0prompt-toolkit==3.0.43psutil==5.9.8pure-eval==0.2.2Pygments==2.17.2pyjanitor==0.26.0pyparsing==3.1.2pyreadr==0.5.0python-dateutil==2.9.0.post0
pytz==2024.1pywin32==306pyzmq==25.1.2referencing==0.34.0rpds-py==0.18.0scipy==1.12.0seaborn==0.13.2session_info==1.0.0six==1.16.0stack-data==0.6.3stdlib-list==0.10.0tornado==6.4traitlets==5.14.2tzdata==2024.1UpSetPlot==0.9.0wcwidth==0.2.13wget==3.2xarray==2024.2.0
Pandas es una biblioteca poderosa para el análisis y manipulación de datos en Python, y ofrece muchas funcionalidades para trabajar con conjuntos de datos,
Extender la API de Pandas significa utilizar las funcionalidades avanzadas y personalizadas de Pandas para realizar operaciones más específicas y complejas en tus conjuntos de datos.
la API de Pandas para realizar tareas más avanzadas y personalizadas en tus conjuntos de datos. La versatilidad de Pandas te permite adaptar tus análisis de datos de acuerdo con tus necesidades específicas. Puedes explorar aún más las funciones y métodos avanzados de Pandas en la documentación oficial y a medida que adquieras experiencia en su uso.
Gracias jhon!
Ojo:
Para quienes están trabajando en Jupyter Notebook en VS Code y les marca error la última funcion de la clase MissingMethods:
se trata de la version de Python, con 3.9 o mayor anda normal.
Gracias Roy!
jajaja esa referencia a jujutsu kaisen
Muy buena clase. No sabia nada sobre esto, pero seguro que me va a ser muy util.
¿Cómo creo mi propio accesor en Pandas?
Para crear tu propio accesor, utilizas los decoradores @pd.api.extensions.register_dataframe_accessor o @pd.api.extensions.register_series_accessor. Primero, defines una clase en Python que reciba el objeto de Pandas (el DataFrame o la Serie) en su método __init__. Luego, agregas los métodos personalizados dentro de esa clase. Al colocar el decorador justo encima de la definición de la clase y asignarle un nombre (por ejemplo, @...("mi_accesor")), Pandas vincula automáticamente esa clase a sus estructuras de datos.
Esto significa que si tienes un DataFrame llamado df, podrás llamar a tus funciones directamente usando df.mi_accesor.mi_funcion(). Es una forma increíblemente limpia de empaquetar utilidades, como funciones específicas para detectar o visualizar valores nulos, sin tener que pasar el DataFrame como argumento a funciones sueltas en tu código.
Llevo la mitad de la clase y ya no entendi nada, creo que dimos un salto muy rapido de explicada paso por paso de como leer un archivo y luego boom clases