No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Transformación de los datos

6/25
Recursos

Aportes 30

Preguntas 6

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

🤓 Recuerda crear tu propio token de Mapbox aquí.

Me aventure a hacer una grafica de calor teniendo en cuenta el numero de unidades. Esto siguiendo la documentación.

Amo los mapas que hicieron. Gracias

Pueden transformar los datos de object a datetime en la misma columna con esta línea:

df['CRASH_DATE'] = pd.to_datetime(df['CRASH_DATE'], errors='coerce')

Podemos crear estilos de mapas personalizados en https://studio.mapbox.com/. Una vez publicados, este estilo tiene una URL asociada que podemos incluir, como atributo “style_mapbox” en la función px.scatter_mapbox(). Como por ejemplo:

px.scatter_mapbox(df_chicago,lat='LATITUDE',lon='LONGITUDE',color='CRASH_HOUR',size='NUM_UNITS',zoom=10,color_continuous_scale=px.colors.cyclical.IceFire,mapbox_style='mapbox://styles/sergiocalipso/ckj3z3a2c2uhs19p386c4vnmr')```


![newplot.png](https://static.platzi.com/media/user_upload/newplot-0d5cba8b-bd31-4c17-843b-f5f5ad46bda1.jpg)

Hola a todos, les comparto el link de la documentación de plotly: https://plotly.com/python-api-reference/generated/plotly.express.density_mapbox.html

También mi solución del mapa de densidades:

px.density_mapbox(data_frame=df_chicago,
                  lat='LATITUDE',
                  lon='LONGITUDE',
                  z='CRASH_HOUR',
                  hover_name='NUM_UNITS',
                  color_continuous_scale=px.colors.cyclical.IceFire,
                  zoom=10,
                  radius=5)

Y el resultado visual:

Amable recordatorio: Si tienen dudas de los atributos de un comando en Google Colabs o en Jupyter Notebooks, siempre pueden usar los signos ??

px.density_mapbox??

Hay un dato que tiene mal la latitud

Para convertir el campo de fecha al formato correcto, es más eficiente aplicar la funcion pd.to_datetime a la serie completa, en vez de a cada elemento usando lambda.

Les comparto el código para que puedan replicarlo

from timeit import default_timer as timer

start_series = timer()
pd.to_datetime(Chicago_df['CRASH_DATE'], errors='coerce', utc=True)
print('Aplicando a la serie completa', timer()-start_series, 's')

start_lambda = timer()
Chicago_df['CRASH_DATE'].apply(lambda x: pd.to_datetime(x, errors='coerce', utc=True))
print('Aplicando a cada elemento con lambda', timer()-start_lambda, 'seg')

En mi caso se reduce el tiempo de 2,7 seg a 0,01 seg.

Puede dejar la referencia completa de ploty Longitude,color=…
Muchas gracias

Esta clase es tan importante. Ojalá puedan reparar el audio.

Hice un par de mapas para separar los choques de DIA y de NOCHE, pensé que podríamos ver algún patron por ahi.

DIA

NOCHE

CODIGO

dia1 = df_chicago['CRASH_HOUR'] >= 7
dia2 = df_chicago['CRASH_HOUR'] <= 19

df_dia = df_chicago[dia1 & dia2]

df_noche = df_chicago[~(dia1 & dia2)]

px.scatter_mapbox(df_dia, 
                  lat='LATITUDE', 
                  lon='LONGITUDE', 
                  color='CRASH_HOUR', 
                  size='NUM_UNITS', 
                  color_continuous_scale=px.colors.cyclical.IceFire, 
                  size_max=15,
                  zoom=10
                  )

px.scatter_mapbox(df_noche, 
                  lat='LATITUDE', 
                  lon='LONGITUDE', 
                  color='CRASH_HOUR', 
                  size='NUM_UNITS', 
                  color_continuous_scale=px.colors.cyclical.IceFire, 
                  size_max=15, 
                  zoom=10
                  )

Hola a todos, en mi caso realicé un hexbin plot siguiendo las instrucciones del siguiente link

Y este fue el resultado 😃 se puede observar las áreas con mayor número de lesionados totales de acuerdo a la escala de colores

Hice una grafica de densidad tomando en cuenta los heridos totales, al parecer en general los accidentes se encuentran entre 0 a 4 heridos y son muy frecuentes en la zona de la costa cerca de chicago harbor.

Para hacer Análisis exploratorio de datos espaciales, esta ESDA como librería especifica.

Yo filtre por accidentes mas costosos y realice un mapa de calor,y se puede obeservar que la costa junto al Muelle de la Armada es la zona donde suceden la mayoria de los accidentes mas costosos de la ciudad

7.068 Intersecciones con semáforos funcionando bien, con evento de choque vehicular y se excluyen 62 registros con NaN en el reporte de accidente.

<Traffic_signal_functioning_properly = df_chicago[(~df_chicago['RD_NO'].isna())& (df_chicago['TRAFFIC_CONTROL_DEVICE']=='TRAFFIC SIGNAL') & (df_chicago['DEVICE_CONDITION']=='FUNCTIONING PROPERLY')]
> 

El mapa de esas intersecciones con semaforizacion funcionando apropiadamente y horas de ocurrencia del accidente.

<px.scatter_mapbox(Traffic_signal_functioning_properly,lat = 'LATITUDE',lon='LONGITUDE',   color="CRASH_HOUR", size="NUM_UNITS",  hover_name='CRASH_DATE',
                  color_continuous_scale=px.colors.cyclical.IceFire, size_max=15, zoom=10,  mapbox_style='stamen-terrain',title='Crash hour with properly functioning traffic light device at intersections')
> 

Mucho mas facil:
Chicago_df[‘CRASH_DATE’]=pd.to_datetime(Chicago_df[‘CRASH_DATE’],errors=‘coerce’, utc=True)

He realizado la siguiente transformación:

Mayor_A_22 = Info[(Info['CRASH_HOUR']>22) & (Info['NUM_UNITS']==2)&(Info['WEATHER_CONDITION']=="RAIN")]

px.scatter_mapbox(Mayor_A_22,lat = 'LATITUDE',lon='LONGITUDE',color ='CRASH_HOUR',size ='NUM_UNITS',color_continuous_scale=px.colors.cyclical.IceFire,size_max=15,zoom=100)

Obteniendo que en el area de GREEKTOWN se dan más a menudo 23 choques por hora por condiciones climaticas: lluvia

en esta clase se nos explica las diversas transformaciones de datos que se pueden hacer con pandas, las mismas son muy importantes ya que, si no, es posible que haya conflicto entre nuestros datos.

debido a que posiblemente los mismo no tengan un formato adecuado para su intersección.

un ejemplo de esto es que quizás la fecha no la este leyendo con formato tipo fecha si no con un formato de numero entero.

por lo cual puede ocurrir por ejemplo que si queremos hacer una correlación entre el numero de ventas lo largo de el mes y la columna de fecha nos genere un error.

Hola a todos,

Que buena clase, personalmente siento que hay algunas cosas que se pueden hacer ma fácil o masivamente, les dejo el ajuste que hice en mi colab, de plotly no se nada así que es lo mismo que dejo la tutora.

[(https://colab.research.google.com/drive/1vFcM5khAJhJmCjEmfrcJZvGztE0-hT0N?usp=sharing)]

Si a alguien le aparece el error de “TypeError: ‘DataFrame’ object is not callable” cuando apliquen por primera vez apply, recuerden que la columna de CRASH_DATE se encierra en corchetes y no en paréntesis.

¿Qué vamos a ver en esta clase?

Vamos a aprender a como hacer transformaciones de datos, de texto a numérico, de numérico a flotante y viceversa, categorías y también como se pueden graficar mapas.

Para practicar, apliqué un mapa de densidad al total de lesiones por accidente. Este es el código

px.density_mapbox(df_chicago, lat='LATITUDE', lon='LONGITUDE', z='INJURIES_TOTAL', hover_name='CRASH_DATE',  color_continuous_scale=px.colors.sequential.gray, title='Injuries Total')

Link para acceder a más escalas de colores

https://plotly.com/python/builtin-colorscales/#builtin-sequential-color-scales

Resultado:

Practique haciendo un mapa donde se muestran las lesiones totales de un choque así como la cantidad de unidades involucradas.

px.scatter_mapbox(df_chicago,lat='LATITUDE',lon='LONGITUDE',color='INJURIES_TOTAL',size='NUM_UNITS',
                  color_continuous_scale=px.colors.cyclical.IceFire, size_max=15, zoom=10)

El resultado fue el siguiente mapa.