Hola Julián 🙋🏻♀️ vamos con las correcciones del primer proyecto del bootcamp
README
En general muy buen trabajo con el readme Julián. Solo como detalles:
Tal vez podrías haber descrito un poco más el dataset, que información tengo, con que columnas voy a trabajar y por que las seleccionas
Puedes también hacer un pequeño resumen de los steps que has ido dando a lo largo del proyecto, una especie de workflow
Pero bueno como te digo son detalles, suuper buen trabajo con el readme 🤓
Estructura del repo
En cuanto a la estructura, suuper bien organizado todo Julián. Tienes diferentes carpetas (images y src). Por ponerme un poco quisquillosa
Te puedes crear otra carpeta donde metas los jupyters que has creado para que se quede todo requeteorganizadito
¿Dónde está el .gitignore?
Si bien en este proyecto no podíamos subir los datos con los que ibamos a trabajar podemos subir los .csv resultado de nuestro proceso de limpieza. De esta forma nos podremos crear otra carpeta
Increible lo bien documentados que tienes los jupyters 🙌🏽
Sintaxis del código
JUPYTER LIMPIEZA
Vamos con el momento en el que lees el archivo .csv
Despues de hacer el pd.read_csv haces un pd.DataFrame
sharks = pd.read_csv('/home/julian/Cursos/Ironhack/Proyecto1/shark-data-cleaning/attacks.csv', encoding="ISO-8859-1")
# este segundo paso no sería necesario ya que el método pd.read_csv` ya nos da un dataframe
sdf = pd.DataFrame(sharks)
En el siguiente paso cuando creas una columna nuevo equal2 lo haces en dos pasos
compare2 = np.where(sdf['Case Number'] == sdf['Case Number.2'], True, False)
sdf['equal2'] = compare2
# esto también lo puedes hacer en un único paso:
sdf['equal2'] = np.where(sdf['Case Number'] == sdf['Case Number.2'], True, False)
Te vas creando varios subsets a lo largo de todo el dataset lo cual esta perfecto, para quedarte con los datos que más registros tienen. Solo como detalle:
act_let = pd.DataFrame(sdf3[sdf3['Fatal (Y/N)'] == 'Y'])
# lo único que tengo que decirte en esto es que la parte del código que pones de `pd.DataFrame` no es necesaria. Ya la creación del subset nos va a crear un pandas dataframe.
Vamos con la limpieza de la columna de species. Usas un regex lo cual esta suuuper bien 💪!!!!
Pero venga, me voy a poner quisquillosa. Tu patrón al final es muy general y nos van a entrar especies que son poco específicas. Como por ejemplo, especies que estaban descritas por el tamaño.
¿Qué podriamos hacer en esta columna?
Seleccionar aquellas species que veamos que aparecen más en el dataframe y a partir de ahí hacer un regex específico para cada una de ellas.
def species2 (col):
# creamos un diccionario con las especies de tiburones más frecuentes y sus regex
diccionario = {
"white" : re.search(r".*[Ww](hite|HITE).*", str(col)),
"tiger" : re.search(r'.*[Tt].*', str(col)),
"bull" : re.search(r'.*[Bb](ull).*', str(col)),
"lemon" : re.search(r'.*[Ll].*', str(col)),
"grey" : re.search (r'reef | \.*reef\.*', str(y))
}
# despues lo que hacemos es interar por el diccionario
for k,v in diccionario.items():
# si encuentra un value en el diccionario me devuelves la key del diccionario
if v == True:
return k
else:
# si no me devuelves "other species"
return "other species"
Muy buen trabajo Julián! Has usado funciones, apply, join etc... Has aplicado muchos de los recursos aprendidos durante la semana de pandas 🔝
JUPYTER VISUALIZACIÓN
En la primera hipótesis Ataques mensuales
Tu gráfica esta suuper bien, peeero, en la explicación hablas de que el mayor número de ataques ocurre durante las actividades acuáticas. Pero... eso no se ve en esa gráfica...
El resto muy buen trabajo, enhorabuena por la parte de visualización, has sido capaz de plantear algunas hipótesis y representar de una forma muy sencilla los resultado. Gráficas facilmente interpretables de un solo vistazo, ese es nuestro objetivo.
🐼🦈 Proyecto sharks 🐼🦈
Hola Julián 🙋🏻♀️ vamos con las correcciones del primer proyecto del bootcamp
README
En general muy buen trabajo con el readme Julián. Solo como detalles:
Tal vez podrías haber descrito un poco más el dataset, que información tengo, con que columnas voy a trabajar y por que las seleccionas
Puedes también hacer un pequeño resumen de los steps que has ido dando a lo largo del proyecto, una especie de workflow
Pero bueno como te digo son detalles, suuper buen trabajo con el readme 🤓
Estructura del repo
En cuanto a la estructura, suuper bien organizado todo Julián. Tienes diferentes carpetas (
images
ysrc
). Por ponerme un poco quisquillosa.gitignore
?.csv
resultado de nuestro proceso de limpieza. De esta forma nos podremos crear otra carpetaSintaxis del código
JUPYTER LIMPIEZA
Vamos con el momento en el que lees el archivo
.csv
Despues de hacer el
pd.read_csv
haces unpd.DataFrame
En el siguiente paso cuando creas una columna nuevo
equal2
lo haces en dos pasosspecies
. Usas un regex lo cual esta suuuper bien 💪!!!!Pero venga, me voy a poner quisquillosa. Tu patrón al final es muy general y nos van a entrar especies que son poco específicas. Como por ejemplo, especies que estaban descritas por el tamaño.
¿Qué podriamos hacer en esta columna?
Seleccionar aquellas species que veamos que aparecen más en el dataframe y a partir de ahí hacer un regex específico para cada una de ellas.
JUPYTER VISUALIZACIÓN
Tu gráfica esta suuper bien, peeero, en la explicación hablas de que el mayor número de ataques ocurre durante las actividades acuáticas. Pero... eso no se ve en esa gráfica...
El resto muy buen trabajo, enhorabuena por la parte de visualización, has sido capaz de plantear algunas hipótesis y representar de una forma muy sencilla los resultado. Gráficas facilmente interpretables de un solo vistazo, ese es nuestro objetivo.