El maestro hace ver el análisis como algo muy fácil de realizar. Mis respetos. Quiero llegar a ese nivel de dominio de las librerías.
Justificación y contexto de tu proyecto
Cómo crear tu proyecto de ciencia de datos
Crea proyectos para afianzar tus conocimientos en ciencia de datos
Cada cuánto hacer un proyecto de datos
Dónde sacar ideas para proyectos de ciencia de datos
Generar y comunicar un proyecto de datos
Casos: personas que ya pasaron por este camino
Quiz: Justificación y contexto de tu proyecto
Ejecutando un proyecto de ciencia de datos
Plantea una pregunta interesante
Obteniendo los datos para tu proyecto
Ejecutando: obteniendo los datos
Limpieza de la información
Ejecutando: limpia tu conjunto de datos
Explora y encuentra patrones en la información
Ejecutando: exploración de la información
Ejecutando: completando la exploración de la información
Enriquecimiento de los datos para análisis profundo
Ejecutando: enriquecimiento de los datos
Aplicando un modelo de machine learning
Ejecutando: aplicando un modelo supervisado de machine learning
Ejecutando: aplicando un modelo no supervisado de machine learning
Ejecutando: aplicando un modelo no supervisado de anomalías
Prepara tu trabajo para comunicarlo con el mundo
Ejecutando: prepara tu trabajo para comunicarlo con el mundo
Quiz: Ejecutando un proyecto de ciencia de datos
Comunicando los resultados
Por qué es importante comunicar los resultados
Escribiendo tu primer blogpost técnico
Compartiendo en comunidad con tu primera presentación
Cómo mejorar tu repositorio en GitHub para ciencia de datos
Haciendo deploy de tus modelos
Construyendo una aplicación full stack que consuma tu proyecto
Quiz: Comunicando los resultados
Últimos pasos
Elige terminar: es mejor terminado que perfecto
Recuerda los objetivos del proyecto: practicar y carta de presentación
Comparte tu proyecto
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Convierte tus certificados en títulos universitarios en USA
Antes: $249
Paga en 4 cuotas sin intereses
Termina en:
Ricardo Alanís
La exploración multidimensional es esencial para comprender las relaciones entre variables en un conjunto de datos. Un enfoque común es identificar a los proveedores o beneficiarios con mayor carga económica. Para lograrlo, se puede agrupar la información por beneficiario y sumar los importes. Este proceso revela no solo el número de facturas, sino también el volumen total de dinero facturado por cada entidad.
# Agrupar por beneficiario y sumar importes
compras_df.groupby('beneficiario')['importe'].sum().reset_index().sort_values(by='importe', ascending=False).head(10)
La visualización de datos permite identificar patrones de manera eficaz. Para visualizar el gasto promedio por categoría, se pueden utilizar gráficos de barras que muestren importes por diferentes tipos, como gasto en servicios personales y varios, proporcionando un contexto de gastos promedio.
# Media de importes por tipo y visualización
importes_por_tipo = compras_df.groupby('sheet')['importe'].mean().reset_index()
importes_por_tipo.sort_values(by='importe', ascending=False).iloc[:10].plot(kind='bar', x='sheet', y='importe')
Las fechas y sus correspondientes gastos proporcionan información valiosa sobre las tendencias temporales. Al sumar los importes por fecha, se puede identificar qué periodos son más activos financieramente.
# Suma de importes por fecha
compras_df.groupby('fecha')['importe'].sum().plot(kind='line')
Sí, puedes crear filtros avanzados para examinar gastos específicos. Por ejemplo, es posible seleccionar solo los gastos de "Gastos Varios" para obtener un análisis más detallado.
# Filtrar gastos varios
gastos_varios = compras_df[compras_df['sheet'] == 'Gastos Varios']
También se pueden agrupar los datos, por ejemplo, por beneficiario y tipo de hoja para observar las combinaciones de estos parámetros y la suma de sus importes.
# Agrupar por beneficiario y tipo de hoja
agrupacion = compras_df.groupby(['beneficiario', 'sheet'])['importe'].sum().unstack().fillna(0)
Las nubes de palabras son herramientas visuales poderosas para entender de qué se habla mayormente en un texto. Utilizar librerías como nltk
y WordCloud
permite generarlas a partir de textos procesados.
Primero, recolectamos y limpiamos todo el texto de un campo determinado, removiendo palabras comunes ('stopwords') y términos poco informativos.
# Importar las librerías necesarias
import nltk
from nltk.corpus import stopwords
# Texto de los conceptos
texto_compras = " ".join(compras_df['concepto'].tolist()).lower()
stopwords_espanol = set(stopwords.words('spanish'))
palabras = [word for word in texto_compras.split() if word not in stopwords_espanol and len(word) > 2]
Utilizando WordCloud
, se genera una representación visual que destaca las palabras más recurrentes y, a su vez, puede brindar insights rápidos.
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# Crear e imprimir la nube de palabras
wordcloud = WordCloud(background_color='white').generate(" ".join(palabras))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()
Este análisis visual de texto es crucial para obtener una mejor comprensión de los temas importantes en un conjunto de datos textual. Recuerda que con cada análisis, la oportunidad de descubrir más información valiosa incrementa.
A medida que adquieres estas habilidades, te animo a seguir profundizando en el análisis de datos y a explorar nuevas formas de enriquecer tus conjuntos de datos. ¡Tu curiosidad es la clave para dominar el arte de la ciencia de datos!
Aportes 15
Preguntas 5
El maestro hace ver el análisis como algo muy fácil de realizar. Mis respetos. Quiero llegar a ese nivel de dominio de las librerías.
Para poder ejecutar el stopword en el COLAB tuve que agregar algunos comandos
import nltk
nltk.download('book')
from nltk.book import *
from nltk.corpus import stopwords
Mi función para agrupar por característica
def gruopby_caracteristica(data, caracteristica, maths=None):
if maths == 'sum':
gruoped_caracteristica = data.groupby(caracteristica).sum()['IMPORTE']
elif maths == 'mean':
gruoped_caracteristica = data.groupby(caracteristica).mean()['IMPORTE']
else:
gruoped_caracteristica = data.groupby(caracteristica)['IMPORTE']
return gruoped_caracteristica
E hice una para ver las tablas de top ‘IMPORTE’ con opción de graficar
def top_gastos(data, top=None, plot=False,):
top_tabla = data.reset_index().sort_values(by="IMPORTE", ascending=False).iloc[0:top]
if plot == False:
return top_tabla
elif plot == True:
top_plot = top_tabla.plot(kind='bar')
return top_plot
Les recomiendo pandas-profiler para automatizar la exploración de datos
Velocidad promedio versus la trayectoria realizada.
La trayectoria se va a definir como la concatenación entre NAME_FROM y NAME_TO.
Mediana de la velocidad promedio en cada trayecto. VEL_PROMEDIO que es más común en cada trayecto:
añadiendo la función isalpha() parece conseguirse una mejor limpieza
textos_compras = ' '.join([x for x in textos_compras.strip().lower().split(' ') if x.isalpha() and x not in stopwords_list and len(x)>4])
A quienes tienen problemas para instalar wordcloud, deben trabajar con una versión de python menor a la 3.12 ya que esta tiene problemas para instalar dicha librería. Esta testeada desde python 3.11 para abajo segun la documentacion al dia de este comentario.
No se olviden de instalar Wordcloud… a mi no me salían las palabras, porque me salía el siguiente error: "No module found wordcloud"
Y se soluciona, instalando:
pip install wordcloud
El “iloc[0:10]” en el minuto 4 cumple alguna función? Como solo hay 5 categorías me parece que no aporta mucho.
Es mas complicado trabajar limiando datos de texto dado lo mal que escribimos 🤦🏼♂️😅
Qué buena clase!
Realizar un análisis multidimensional del conjunto de datos ‘datos_limpuios.csv’ (Mi proyecto) utilizando PCA para reducir la dimensionalidad a un espacio de dos dimensiones, lo que facilita la visualización de la distribución de los datos.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?