0JHK001107 UA3 AA1 Resuleto
0JHK001107 UA3 AA1 Resuleto
0JHK001107 UA3 AA1 Resuleto
Unidad 3
1. Enunciado
La actividad está organizada en ejercicios y se evalúa sobre un máximo de 10
puntos. Todos los ejercicios tienen el mismo peso en la evaluación de la actividad.
Un ejercicio puede contener varias preguntas o apartados, en cuyo caso la
puntuación del ejercicio se repartirá de forma equitativa entre las preguntas o
apartados que lo componen.
import pandas as pd
# Verificación programática
espacios_blanco = (df.apply(lambda col: col.map(lambda x:
isinstance(x, str) and x.startswith(' ')) if col.dtype == 'object'
else False).sum().sum() == 0)
if espacios_blanco:
print("\nTodos los espacios en blanco al inicio han sido
eliminados.")
else:
print("\nTodavía hay espacios en blanco al inicio en algunos
strings.")
Este comando importa la biblioteca Pandas, que es una herramienta poderosa para la
manipulación y análisis de datos en Python.
Aquí defines la URL donde se encuentra el archivo de datos que deseas cargar. Este es
el enlace directo al archivo adult.data del conjunto de datos de ingresos del censo.
Esta lista contiene los nombres de las columnas del DataFrame. Estos nombres
corresponden a las variables en el conjunto de datos y se utilizarán para etiquetar las
columnas al cargar los datos.
Aquí estás utilizando la función read_csv de Pandas para leer el archivo CSV desde la
URL. Vamos a desglosar los parámetros utilizados:
def show_with_brackets(df):
Este paso utiliza el método apply de Pandas para limpiar los espacios en blanco al
inicio y al final de cada cadena de texto en las columnas del DataFrame. Vamos a
desglosarlo:
Este código se usa para limpiar un DataFrame de Pandas df eliminando los espacios en
blanco al principio y al final de cada cadena de texto en todas las columnas que
contengan strings (object).
1. df.apply(...):
o df es tu DataFrame.
o El método apply de Pandas aplica una función a lo largo de un eje del
DataFrame (ya sea a nivel de filas o columnas). En este caso, se aplica a
cada columna.
2. lambda col: ...:
o lambda es una palabra clave en Python que crea una función anónima, es
decir, una función sin nombre que se define en una sola línea.
o col es el nombre del argumento que se pasará a esta función lambda. En
este contexto, representa una columna del DataFrame.
3. col.str.strip():
o col es una columna del DataFrame.
o str es un accesorio de las series de Pandas que contiene métodos de
cadena de texto.
o strip() es un método de cadena de texto que elimina los espacios en
blanco al principio y al final de cada string en la columna.
4. if col.dtype == 'object':
o col.dtype obtiene el tipo de datos de la columna.
o object es el tipo de datos que Pandas usa para representar cadenas de
texto.
o Este condicional verifica si la columna es de tipo object, es decir, si la
columna contiene cadenas de texto.
5. else col:
o Si la columna no es de tipo object, esta parte de la función lambda
devuelve la columna tal cual, sin hacerle ninguna modificación.
Flujo de Ejecución
1. Aplicación de la Función:
o df.apply(...) aplica la función lambda a cada columna del
DataFrame.
2. Verificación del Tipo de Datos:
o Para cada columna, col.dtype == 'object' verifica si la columna es
de tipo object (cadenas de texto).
3. Limpieza de Cadenas de Texto:
o Si la columna es de tipo object, col.str.strip() elimina los espacios
en blanco al principio y al final de cada cadena en esa columna.
4. Retorno de la Columna:
Antes de la limpieza:
Después de la limpieza:
import pandas as pd
column_names = [
# Limpieza de los espacios en blanco al inicio y final de cada string usando `apply`
# Crear DataFrame con registros que tienen ingresos menores o iguales a 50 mil
dólares
# Crear DataFrame con registros que tienen ingresos mayores a 50 mil dólares
print(df_less.head())
print(df_more.head())
Explicación Detallada:
1. Importación de Bibliotecas:
python
python
url = "https://archive.ics.uci.edu/ml/machine-learning-
databases/adult/adult.data"
python
column_names = [
"age", "workclass", "fnlwgt", "education", "education-num",
"marital-status", "occupation", "relationship", "race",
"sex",
"capital-gain", "capital-loss", "hours-per-week", "native-
country", "income"
]
Esta lista contiene los nombres de las columnas que utilizaremos para etiquetar
las columnas del DataFrame.
python
python
Aplicamos una función lambda a cada columna del DataFrame para eliminar los
espacios en blanco al inicio y al final de cada string. Esto se hace solo para las
columnas de tipo object (cadenas de texto).
python
Creamos un nuevo DataFrame df_less que contiene solo los registros donde la
columna income es igual a "<=50K".
python
Creamos un nuevo DataFrame df_more que contiene solo los registros donde la
columna income es igual a ">50K".
python
import pandas as pd
Código
python
# Agrupar y contar registros por nivel educativo para df_less
education_counts_less =
df_less.groupby('education').size().sort_values(ascending=False)
print("Registros que cobran menos de 50 mil dólares agrupados por
nivel educativo:")
print(education_counts_less)
education_counts_less =
df_less.groupby('education').size().sort_values(ascending=False)
python
python
education_counts_more =
df_more.groupby('education').size().sort_values(ascending=False)
python
df_less:
Los grupos educativos con más registros que ganan menos de 50K son "HS-
grad" (graduados de secundaria), "Some-college" (algunos estudios
universitarios) y "Bachelors" (licenciatura).
Estos resultados tienen sentido ya que la mayoría de la población suele tener
estos niveles educativos y es razonable que muchos no alcancen ingresos
mayores a 50K, especialmente sin experiencia significativa o educación superior
adicional.
df_more:
Los grupos educativos con más registros que ganan más de 50K son "Bachelors"
(licenciatura), "HS-grad" (graduados de secundaria) y "Some-college" (algunos
import pandas as pd
url =
"https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data"
column_names = [
def show_with_brackets(df):
print("Antes de la limpieza:")
print(show_with_brackets(df).head())
print("\nDespués de la limpieza:")
print(show_with_brackets(df).head())
if espacios_blanco:
else:
education_counts_less =
df_less.groupby('education').size().sort_values(ascending=False)
print(education_counts_less)
education_counts_more =
df_more.groupby('education').size().sort_values(ascending=False)
print(education_counts_more)
total_counts = df.groupby('education').size()
print(total_counts)
normalized_less = (education_counts_less /
total_counts).sort_values(ascending=False)
print(normalized_less)
normalized_more = (education_counts_more /
total_counts).sort_values(ascending=False)
print(normalized_more)
python
def show_with_brackets(df):
return df.applymap(lambda x: f'[{x}]' if isinstance(x, str) else
x)
Esta función toma un DataFrame y devuelve uno nuevo donde cada valor de tipo string
está rodeado de corchetes [ ], ayudando a visualizar claramente los espacios en blanco.
python
print("Antes de la limpieza:")
print(show_with_brackets(df).head())
Aquí, el código muestra las primeras 5 filas del DataFrame antes de aplicar la limpieza,
permitiendo ver los espacios en blanco iniciales.
python
df = df.apply(lambda col: col.str.strip() if col.dtype == 'object'
else col)
En esta parte, se utiliza el método apply para aplicar una función lambda a cada
columna del DataFrame:
python
print("\nDespués de la limpieza:")
print(show_with_brackets(df).head())
Aquí, se muestran nuevamente las primeras 5 filas del DataFrame después de aplicar la
limpieza, permitiendo comparar visualmente los cambios.
Verificación Programática:
python
espacios_blanco = (df.apply(lambda col: col.map(lambda x:
isinstance(x, str) and x.startswith(' ')) if col.dtype == 'object'
else False).sum().sum() == 0)
if espacios_blanco:
print("\nTodos los espacios en blanco al inicio han sido
eliminados.")
else:
print("\nTodavía hay espacios en blanco al inicio en algunos
strings.")
python
df_less = df[df['income'] == '<=50K']
df_more = df[df['income'] == '>50K']
Estos comandos filtran los registros para crear dos nuevos DataFrames:
python
education_counts_less =
df_less.groupby('education').size().sort_values(ascending=False)
print("\nRegistros que cobran menos de 50 mil dólares agrupados por
nivel educativo:")
print(education_counts_less)
education_counts_more =
df_more.groupby('education').size().sort_values(ascending=False)
print("\nRegistros que cobran más de 50 mil dólares agrupados por
nivel educativo:")
print(education_counts_more)
python
total_counts = df.groupby('education').size()
print("\nNúmero total de registros por nivel educativo:")
print(total_counts)
import pandas as pd
url =
"https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data"
column_names = [
education_counts_more = df_more.groupby('education').size()
total_counts = df.groupby('education').size()
normalized_less = (education_counts_less /
total_counts).sort_values(ascending=False)
print(normalized_less)
normalized_more = (education_counts_more /
total_counts).sort_values(ascending=False)
print(normalized_more)
python
df = df.apply(lambda col: col.str.strip() if col.dtype == 'object'
else col)
python
df_less = df[df['income'] == '<=50K']
df_more = df[df['income'] == '>50K']
python
education_counts_less = df_less.groupby('education').size()
python
education_counts_more = df_more.groupby('education').size()
python
total_counts = df.groupby('education').size()
python
normalized_less = (education_counts_less /
total_counts).sort_values(ascending=False)
print("\nProporción de registros que cobran menos de 50 mil dólares
por nivel educativo:")
print(normalized_less)
python
normalized_more = (education_counts_more /
total_counts).sort_values(ascending=False)
print("\nProporción de registros que cobran más de 50 mil dólares por
nivel educativo:")
print(normalized_more)
Análisis y Comentarios
import pandas as pd
url = "https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data"
column_names = [
# Limpieza de los espacios en blanco al inicio y final de cada string usando `apply`
# Crear DataFrame con registros que tienen ingresos menores o iguales a 50 mil
dólares
# Crear DataFrame con registros que tienen ingresos mayores a 50 mil dólares
education_counts_more = df_more.groupby('education').size()
total_counts = df.groupby('education').size()
normalized_less = (education_counts_less /
total_counts).sort_values(ascending=False)
normalized_more = (education_counts_more /
total_counts).sort_values(ascending=False)
ax[0].set_xlabel('Nivel Educativo')
ax[0].set_ylabel('Proporción')
ax[1].set_xlabel('Nivel Educativo')
ax[1].set_ylabel('Proporción')
plt.tight_layout()
plt.show()
python
df = pd.read_csv(url, header=None, names=column_names)
El código utiliza el método apply de Pandas para limpiar los espacios en blanco al
inicio y al final de cada cadena de texto en el DataFrame.
python
df = df.apply(lambda col: col.str.strip() if col.dtype == 'object'
else col)
El código crea dos nuevos DataFrames basados en la columna income, separando los
registros en dos grupos: aquellos que ganan menos o iguales a 50K y aquellos que
ganan más de 50K.
python
df_less = df[df['income'] == '<=50K']
df_more = df[df['income'] == '>50K']
El código agrupa los registros por nivel educativo y cuenta el número de registros en
cada grupo, tanto para df_less como para df_more. También cuenta el número total de
registros por nivel educativo en el DataFrame original.
python
education_counts_less = df_less.groupby('education').size()
education_counts_more = df_more.groupby('education').size()
total_counts = df.groupby('education').size()
python
normalized_less = (education_counts_less /
total_counts).sort_values(ascending=False)
normalized_more = (education_counts_more /
total_counts).sort_values(ascending=False)
El código crea una figura con dos subgráficas para las proporciones normalizadas de
ingresos menos o iguales a 50K y mayores a 50K.
python
fig, ax = plt.subplots(2, 1, figsize=(12, 10))
plt.subplots(2, 1, figsize=(12, 10)): Crea una figura con dos subgráficas (una
fila, dos columnas) y establece el tamaño de la figura.
El código genera una gráfica de barras para mostrar las proporciones de registros con
ingresos menores o iguales a 50K, por nivel educativo.
python
ax[0].bar(normalized_less.index, normalized_less, color='skyblue')
ax[0].set_title('Proporción de Registros con Ingresos <= 50K por Nivel
Educativo')
ax[0].set_xlabel('Nivel Educativo')
ax[0].set_ylabel('Proporción')
ax[0].tick_params(axis='x', rotation=90)
El código genera una gráfica de barras para mostrar las proporciones de registros con
ingresos mayores a 50K, por nivel educativo.
python
ax[1].bar(normalized_more.index, normalized_more, color='salmon')
ax[1].set_title('Proporción de Registros con Ingresos > 50K por Nivel
Educativo')
python
plt.tight_layout()
python
plt.show()
Importación de Bibliotecas
python
# URL del dataset
url =
"https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult
.data"
python
df = pd.read_csv(url, header=None, names=column_names)
El código utiliza el método apply de Pandas para limpiar los espacios en blanco al
inicio y al final de cada cadena de texto en el DataFrame.
python
df = df.apply(lambda col: col.str.strip() if col.dtype == 'object'
else col)
El código crea una nueva columna categórica (income_cat) que clasifica los ingresos
en dos categorías: <=50K y >50K.
python
df['income_cat'] = df['income'].apply(lambda x: '<=50K' if x ==
'<=50K' else '>50K')
python
plt.figure(figsize=(14, 10))
plt.figure(figsize=(14, 10)):
o Crea una nueva figura de Matplotlib con un tamaño específico (14
unidades de ancho por 10 de alto), lo que facilita la visualización de los
datos sin superposiciones y con detalles claros.
El código crea un gráfico de violín para visualizar la distribución de la edad según los
ingresos y el género.
python
sns.violinplot(x="income_cat", y="age", hue="sex", data=df,
split=True, inner="quartile", palette="muted")
sns.violinplot(...):
o x="income_cat": Establece el eje X como la columna income_cat, que
contiene las categorías de ingresos (<=50K y >50K).
o y="age": Establece el eje Y como la columna age, representando la
edad de las personas.
o hue="sex": Usa la columna sex para colorear los datos, distinguiendo
entre hombres y mujeres.
o data=df: Utiliza el DataFrame df como fuente de datos.
o split=True: Divide los datos en cada grupo de ingresos según el género,
mostrando dos distribuciones superpuestas.
o inner="quartile": Incluye los cuartiles internos en el gráfico, lo que
proporciona información adicional sobre la mediana y los rangos
intercuartílicos.
o palette="muted": Usa una paleta de colores atenuados para una
visualización más clara y profesional.
Títulos y Etiquetas
python
plt.title('Distribución de la Edad según Ingresos y Género')
plt.xlabel('Ingresos')
plt.ylabel('Edad')
plt.legend(title='Género')
plt.title(...): Establece el título del gráfico para indicar claramente lo que se está
visualizando.
plt.xlabel(...): Añade una etiqueta al eje X, describiendo que representa las
categorías de ingresos.
Mostrar la Gráfica
python
plt.show()
El gráfico de violín muestra cómo la edad y el género afectan a los ingresos de una
persona de la siguiente manera:
División por Género: Las partes del violín separadas por el color muestran las
distribuciones de edad para hombres y mujeres en ambos grupos de ingresos.
Esto permite comparar cómo varía la distribución de la edad entre géneros y
grupos de ingresos.
Densidad de la Edad: El ancho de los "violines" representa la densidad de la
edad, indicando las edades más comunes en cada grupo de ingresos y género.
Las áreas más anchas representan una mayor concentración de individuos en ese
rango de edad.
Cuartiles Internos: Las líneas dentro del gráfico de violín indican los cuartiles,
ofreciendo una visión detallada de la mediana y los rangos intercuartílicos, lo
cual es útil para entender la dispersión y la tendencia central de los datos.
Este tipo de visualización es conveniente porque permite ver la distribución de los datos
y la densidad, facilitando la comparación entre grupos de ingresos, edades y géneros.
Además, ofrece una visualización clara y detallada de cómo la edad y el género pueden
influir en los ingresos de las personas.
import pandas as pd
file_path = '/content/okcupid_profiles.csv'
df = pd.read_csv('okcupid_profiles.csv')
df.head()
df_red = df[['age', 'status', 'sex', 'orientation',
'body_type', 'diet', 'drinks', 'height', 'income', 'job']]
df_red.head()
Explicación:
import pandas as pd
# Cargar el dataset
file_path = "/content/okcupid_profiles.csv"
df = pd.read_csv(file_path)
print(df_red.head())
df_red = df_red.copy()
print(df_red.head())
df_red = df_red.drop(columns=['job'])
print(df_red.head())
import pandas as pd
# Cargar el dataset
file_path = "/content/okcupid_profiles.csv"
df = pd.read_csv(file_path)
df_red = df_red.copy()
df_red = df_red.drop(columns=['job'])
X = df_red.drop(columns=['is_stem'])
Y = df_red['is_stem']
print(X.head())
print(Y.head())
python
import pandas as pd
2. Cargar el Dataset:
python
file_path = "/content/okcupid_profiles.csv"
df = pd.read_csv(file_path)
python
python
df_red = df_red.copy()
df_red['is_stem'] = df_red['job'].apply(lambda x: 1 if
isinstance(x, str) and any(stem in x.lower() for stem in
['science', 'technology', 'engineering', 'math']) else 0)
python
df_red = df_red.drop(columns=['job'])
python
python
X = df_red.drop(columns=['is_stem'])
Y = df_red['is_stem']
python
print(X.head())
print(Y.head())
import pandas as pd
# Cargar el dataset
file_path = "/content/okcupid_profiles.csv"
df = pd.read_csv(file_path)
df_red = df_red.copy()
df_red = df_red.drop(columns=['job'])
X = df_red.drop(columns=['is_stem'])
Y = df_red['is_stem']
print(X.head())
print(Y.head())
python
import pandas as pd
from sklearn.model_selection import train_test_split
python
file_path = "/content/okcupid_profiles.csv"
df = pd.read_csv(file_path)
python
python
df_red = df_red.copy()
df_red['is_stem'] = df_red['job'].apply(lambda x: 1 if
isinstance(x, str) and any(stem in x.lower() for stem in
['science', 'technology', 'engineering', 'math']) else 0)
python
df_red = df_red.drop(columns=['job'])
python
python
X = df_red.drop(columns=['is_stem'])
Y = df_red['is_stem']
python
print(X.head())
print(Y.head())
o X.head():
Muestra las primeras cinco filas del DataFrame X para
verificar que contiene todas las columnas originales excepto is_stem.
o Y.head(): Muestra las primeras cinco filas de la Serie Y para verificar
que contiene los valores de la columna is_stem.
9. Dividir los Datos en Conjuntos de Entrenamiento y Prueba:
python
python
import pandas as pd
# Cargar el dataset
file_path = "/content/okcupid_profiles.csv"
df = pd.read_csv(file_path)
df_red = df_red.copy()
df_red = df_red.drop(columns=['job'])
X = df_red.drop(columns=['is_stem'])
Y = df_red['is_stem']
python
import pandas as pd
from sklearn.model_selection import train_test_split
python
file_path = "/content/okcupid_profiles.csv"
df = pd.read_csv(file_path)
python
python
df_red = df_red.copy()
df_red['is_stem'] = df_red['job'].apply(lambda x: 1 if
isinstance(x, str) and any(stem in x.lower() for stem in
['science', 'technology', 'engineering', 'math']) else 0)
python
df_red = df_red.drop(columns=['job'])
python
python
X = df_red.drop(columns=['is_stem'])
Y = df_red['is_stem']
python
python
import pandas as pd
# Cargar el dataset
file_path = "/content/okcupid_profiles.csv"
df = pd.read_csv(file_path)
df_red = df_red.copy()
df_red = df_red.drop(columns=['job'])
X = df_red.drop(columns=['is_stem'])
Y = df_red['is_stem']
plt.figure(figsize=(10, 6))
plt.xlabel(var.capitalize())
plt.ylabel('Frecuencia')
plt.legend()
plt.show()
python
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.model_selection import train_test_split
Cargar el Dataset:
python
file_path = "/content/okcupid_profiles.csv"
df = pd.read_csv(file_path)
python
columns_to_select = ['age', 'status', 'sex', 'orientation',
'body_type', 'diet', 'drinks', 'height', 'income', 'job']
df_red = df.loc[:, columns_to_select]
python
df_red = df_red.copy()
df_red['is_stem'] = df_red['job'].apply(lambda x: 1 if isinstance(x,
str) and any(stem in x.lower() for stem in ['science', 'technology',
'engineering', 'math']) else 0)
python
df_red = df_red.drop(columns=['job'])
python
percentage_stem = df_red['is_stem'].mean() * 100
print(f'Porcentaje de instancias en STEM: {percentage_stem:.2f}%')
python
X = df_red.drop(columns=['is_stem'])
Y = df_red['is_stem']
python
X_train, X_test, Y_train, Y_test = train_test_split(X, Y,
test_size=0.3, random_state=42, stratify=Y)
python
variables = ['age', 'orientation', 'body_type', 'height', 'income']
import pandas as pd
file_path = "/path/al/archivo/accidentes_bicicletas_2019.csv"
# Mostrar las primeras filas del DataFrame para verificar la carga correcta
print(df.head())
print(df.head())
python
import pandas as pd
2. Cargar el Dataset:
python
file_path = "/path/al/archivo/accidentes_bicicletas_2019.csv"
df = pd.read_csv(file_path, sep=';')
python
print(df.head())
o df.head():
Muestra las primeras cinco filas del DataFrame df para
proporcionar una vista preliminar de los datos y verificar que se han
cargado correctamente. Este comando ayuda a identificar las columnas
disponibles y los tipos de datos presentes.
4. Crear la Variable hora_int Utilizando el Método apply:
python
python
print(df.head())
Siguiendo estos pasos, se puede cargar el dataset de accidentes de bicicletas, crear una
nueva columna hora_int que represente la hora del accidente sin considerar los
minutos, y verificar que los datos se han procesado correctamente. Cada paso se explica
detalladamente para asegurar una comprensión clara del proceso. Si necesitas más
información o tienes alguna pregunta adicional, ¡no dudes en preguntar! Estoy aquí para
ayudarte en tu aprendizaje de Python.
import pandas as pd
file_path = "/path/al/archivo/accidentes_bicicletas_2019.csv"
accidentes_por_hora = df['hora_int'].value_counts().sort_index()
print(accidentes_por_hora)
plt.figure(figsize=(10, 6))
accidentes_por_hora.plot(kind='bar', color='skyblue')
plt.ylabel('Número de Accidentes')
plt.show()
python
import pandas as pd
import matplotlib.pyplot as plt
python
file_path = "/path/al/archivo/accidentes_bicicletas_2019.csv"
df = pd.read_csv(file_path, sep=';')
o file_path =
"/path/al/archivo/accidentes_bicicletas_2019.csv": Define la
ruta del archivo CSV que contiene el dataset de accidentes de bicicletas
correspondiente al año 2019.
o df = pd.read_csv(file_path, sep=';'): Utiliza la función
read_csv de Pandas para cargar el archivo CSV en un DataFrame
llamado df. Especifica el separador (sep=';') si el archivo CSV utiliza
un delimitador diferente al estándar (coma). Esta función lee el contenido
del archivo y lo almacena en una estructura de datos tabular.
3. Crear la Variable hora_int Utilizando el Método apply:
python
python
accidentes_por_hora = df['hora_int'].value_counts().sort_index()
python
print(accidentes_por_hora)
o accidentes_por_hora:
Imprime la Series de Pandas que muestra el
número de accidentes por cada hora del día, ordenados de menor a
mayor.
6. Representar los Datos en un Gráfico de Barras:
python
plt.figure(figsize=(10, 6))
accidentes_por_hora.plot(kind='bar', color='skyblue')
plt.title('Número de Accidentes por Hora del Día')
plt.xlabel('Hora del Día')
plt.ylabel('Número de Accidentes')
plt.xticks(rotation=0)
plt.show()
Siguiendo estos pasos, se puede cargar el dataset de accidentes de bicicletas, crear una
nueva columna hora_int que represente la hora del accidente sin considerar los
minutos, calcular el número de accidentes por cada hora del día y representarlos en un
gráfico de barras. Cada paso se explica detalladamente para asegurar una comprensión
clara del proceso.
import pandas as pd
file_path = "/path/al/archivo/accidentes_bicicletas_2019.csv"
accidentes_por_estado_meteorologico =
df.groupby('estado_meteorologico').size().sort_values(ascending=False)
print(accidentes_por_estado_meteorologico)
accidentes_por_estado_meteorologico.plot(kind='bar', color='skyblue',
figsize=(10, 6))
plt.xlabel('Estado Meteorológico')
plt.ylabel('Número de Accidentes')
plt.xticks(rotation=45)
plt.show()
python
import pandas as pd
2. Cargar el Dataset:
python
file_path = "/path/al/archivo/accidentes_bicicletas_2019.csv"
df = pd.read_csv(file_path, sep=';')
o file_path =
"/path/al/archivo/accidentes_bicicletas_2019.csv": Define la
ruta del archivo CSV que contiene el dataset de accidentes de bicicletas
correspondiente al año 2019.
o df = pd.read_csv(file_path, sep=';'): Utiliza la función
read_csv de Pandas para cargar el archivo CSV en un DataFrame
llamado df. Especifica el separador (sep=';') si el archivo CSV utiliza
un delimitador diferente al estándar (coma). Esta función lee el contenido
del archivo y lo almacena en una estructura de datos tabular.
3. Crear la Variable hora_int Utilizando el Método apply:
python
python
accidentes_por_estado_meteorologico =
df.groupby('estado_meteorologico').size().sort_values(ascending=
False)
python
print(accidentes_por_estado_meteorologico)
python
accidentes_por_estado_meteorologico.plot(kind='bar',
color='skyblue', figsize=(10, 6))
plt.title('Número de Accidentes por Estado Meteorológico')
plt.xlabel('Estado Meteorológico')
plt.ylabel('Número de Accidentes')
plt.xticks(rotation=45)
plt.show()
o accidentes_por_estado_meteorologico.plot(kind='bar',
color='skyblue', figsize=(10, 6)): Utiliza Pandas para crear un
gráfico de barras a partir de la Series
accidentes_por_estado_meteorologico, coloreando las barras de
azul claro y estableciendo el tamaño de la figura.
o plt.title('Número de Accidentes por Estado Meteorológico'):
Establece el título del gráfico.
o plt.xlabel('Estado Meteorológico'): Establece la etiqueta del eje
X.
o plt.ylabel('Número de Accidentes'): Establece la etiqueta del eje
Y.
o plt.xticks(rotation=45): Ajusta la rotación de las etiquetas del eje X
para que sean legibles.
o plt.show(): Muestra el gráfico en pantalla.
python
2. Cargar el Dataset:
python
file_path = "/path/al/archivo/accidentes_bicicletas_2019.csv"
df = pd.read_csv(file_path, sep=';')
o file_path =
"/path/al/archivo/accidentes_bicicletas_2019.csv": Define la
ruta del archivo CSV que contiene el dataset de accidentes de bicicletas
correspondiente al año 2019.
o df = pd.read_csv(file_path, sep=';'): Utiliza la función
read_csv de Pandas para cargar el archivo CSV en un DataFrame
llamado df. Especifica el separador (sep=';') si el archivo CSV utiliza
un delimitador diferente al estándar (coma). Esta función lee el contenido
del archivo y lo almacena en una estructura de datos tabular.
3. Crear la Variable hora_int Utilizando el Método apply:
python
python
accidentes_por_estado_meteorologico =
df.groupby('estado_meteorologico').size().sort_values(ascending=
False)
python
print(accidentes_por_estado_meteorologico)
python
accidentes_por_estado_meteorologico.plot(kind='bar',
color='skyblue', figsize=(10, 6))
plt.title('Número de Accidentes por Estado Meteorológico')
plt.xlabel('Estado Meteorológico')
plt.ylabel('Número de Accidentes')
plt.xticks(rotation=45)
plt.show()
o accidentes_por_estado_meteorologico.plot(kind='bar',
color='skyblue', figsize=(10, 6)): Utiliza Pandas para crear un
gráfico de barras a partir de la Series
accidentes_por_estado_meteorologico, coloreando las barras de
azul claro y estableciendo el tamaño de la figura.
o plt.title('Número de Accidentes por Estado Meteorológico'):
Establece el título del gráfico.
o plt.xlabel('Estado Meteorológico'): Establece la etiqueta del eje
X.
o plt.ylabel('Número de Accidentes'): Establece la etiqueta del eje
Y.
o plt.xticks(rotation=45): Ajusta la rotación de las etiquetas del eje X
para que sean legibles.
o plt.show(): Muestra el gráfico en pantalla.
2. Detalles de la entrega