Explorar datos de un archivo csv por medio de librería pandas
Identificar una ruta WEB en donde se encuentra un archivo csv que contenga varias variables cpn lo cual se podrá importar con la función de read (lectura) que permitirá explorar sus datos.
La exploración de datos es un primer paso del análisis de datos que se utiliza para explorar y visualizar datos para descubrir conocimientos desde el mismo inicio o identificar áreas o patrones para profundizarlos más. texto del vínculo
Va a contener varios elementos:
import pandas as pd
import matplotlib.pyplot as plt
Los datos se encuentran en la URL: https://raw.githubusercontent.com/rpizarrog/Analisis-Inteligente-de-datos/main/datos/movies-db.csv
datos = pd.read_csv("https://raw.githubusercontent.com/rpizarrog/Analisis-Inteligente-de-datos/main/datos/movies-db.csv")
datos
| name | year | length_min | genre | average_rating | cost_millions | foreign | age_restriction | |
|---|---|---|---|---|---|---|---|---|
| 0 | Toy Story | 1995 | 81 | Animation | 8.3 | 30.0 | 0 | 0 |
| 1 | Akira | 1998 | 125 | Animation | 8.1 | 10.4 | 1 | 14 |
| 2 | The Breakfast Club | 1985 | 97 | Drama | 7.9 | 1.0 | 0 | 14 |
| 3 | The Artist | 2011 | 100 | Romance | 8.0 | 15.0 | 1 | 12 |
| 4 | Modern Times | 1936 | 87 | Comedy | 8.6 | 1.5 | 0 | 10 |
| 5 | Fight Club | 1999 | 139 | Drama | 8.9 | 63.0 | 0 | 18 |
| 6 | City of God | 2002 | 130 | Crime | 8.7 | 3.3 | 1 | 18 |
| 7 | The Untouchables | 1987 | 119 | Drama | 7.9 | 25.0 | 0 | 14 |
| 8 | Star Wars Episode IV | 1977 | 121 | Action | 8.7 | 11.0 | 0 | 10 |
| 9 | American Beauty | 1999 | 122 | Drama | 8.4 | 15.0 | 0 | 14 |
| 10 | Room | 2015 | 118 | Drama | 8.3 | 13.0 | 1 | 14 |
| 11 | Dr. Strangelove | 1964 | 94 | Comedy | 8.5 | 1.8 | 1 | 10 |
| 12 | The Ring | 1998 | 95 | Horror | 7.3 | 1.2 | 1 | 18 |
| 13 | Monty Python and the Holy Grail | 1975 | 91 | Comedy | 8.3 | 0.4 | 1 | 18 |
| 14 | High School Musical | 2006 | 98 | Comedy | 5.2 | 4.2 | 0 | 0 |
| 15 | Shaun of the Dead | 2004 | 99 | Horror | 8.0 | 6.1 | 1 | 18 |
| 16 | Taxi Driver | 1976 | 113 | Crime | 8.3 | 1.3 | 1 | 14 |
| 17 | The Shawshank Redemption | 1994 | 142 | Crime | 9.3 | 25.0 | 0 | 16 |
| 18 | Interstellar | 2014 | 169 | Adventure | 8.6 | 165.0 | 0 | 10 |
| 19 | Casino | 1995 | 178 | Biography | 8.2 | 50.0 | 0 | 18 |
| 20 | The Goodfellas | 1990 | 145 | Biography | 8.7 | 25.0 | 0 | 14 |
| 21 | Blue is the Warmest Colour | 2013 | 179 | Romance | 7.8 | 4.5 | 1 | 18 |
| 22 | Black Swan | 2010 | 108 | Thriller | 8.0 | 13.0 | 0 | 16 |
| 23 | Back to the Future | 1985 | 116 | Sci-fi | 8.5 | 19.0 | 0 | 0 |
| 24 | The Wave | 2008 | 107 | Thriller | 7.6 | 5.5 | 1 | 16 |
| 25 | Whiplash | 2014 | 106 | Drama | 8.5 | 3.3 | 1 | 12 |
| 26 | The Grand Hotel Budapest | 2014 | 100 | Crime | 8.1 | 25.5 | 0 | 14 |
| 27 | Jumanji | 1995 | 104 | Fantasy | 6.9 | 65.0 | 0 | 12 |
| 28 | The Eternal Sunshine of the Spotless Mind | 2004 | 108 | Drama | 8.3 | 20.0 | 0 | 14 |
| 29 | Chicago | 2002 | 113 | Comedy | 7.2 | 45.0 | 0 | 12 |
| 30 | Jumangi | 2020 | 120 | Action | 8.0 | 50.0 | 0 | 12 |
Explorar los primeros registros con función head()
datos.head(10)
| name | year | length_min | genre | average_rating | cost_millions | foreign | age_restriction | |
|---|---|---|---|---|---|---|---|---|
| 0 | Toy Story | 1995 | 81 | Animation | 8.3 | 30.0 | 0 | 0 |
| 1 | Akira | 1998 | 125 | Animation | 8.1 | 10.4 | 1 | 14 |
| 2 | The Breakfast Club | 1985 | 97 | Drama | 7.9 | 1.0 | 0 | 14 |
| 3 | The Artist | 2011 | 100 | Romance | 8.0 | 15.0 | 1 | 12 |
| 4 | Modern Times | 1936 | 87 | Comedy | 8.6 | 1.5 | 0 | 10 |
| 5 | Fight Club | 1999 | 139 | Drama | 8.9 | 63.0 | 0 | 18 |
| 6 | City of God | 2002 | 130 | Crime | 8.7 | 3.3 | 1 | 18 |
| 7 | The Untouchables | 1987 | 119 | Drama | 7.9 | 25.0 | 0 | 14 |
| 8 | Star Wars Episode IV | 1977 | 121 | Action | 8.7 | 11.0 | 0 | 10 |
| 9 | American Beauty | 1999 | 122 | Drama | 8.4 | 15.0 | 0 | 14 |
Explorar los últimos registros
datos.tail(10)
| name | year | length_min | genre | average_rating | cost_millions | foreign | age_restriction | |
|---|---|---|---|---|---|---|---|---|
| 21 | Blue is the Warmest Colour | 2013 | 179 | Romance | 7.8 | 4.5 | 1 | 18 |
| 22 | Black Swan | 2010 | 108 | Thriller | 8.0 | 13.0 | 0 | 16 |
| 23 | Back to the Future | 1985 | 116 | Sci-fi | 8.5 | 19.0 | 0 | 0 |
| 24 | The Wave | 2008 | 107 | Thriller | 7.6 | 5.5 | 1 | 16 |
| 25 | Whiplash | 2014 | 106 | Drama | 8.5 | 3.3 | 1 | 12 |
| 26 | The Grand Hotel Budapest | 2014 | 100 | Crime | 8.1 | 25.5 | 0 | 14 |
| 27 | Jumanji | 1995 | 104 | Fantasy | 6.9 | 65.0 | 0 | 12 |
| 28 | The Eternal Sunshine of the Spotless Mind | 2004 | 108 | Drama | 8.3 | 20.0 | 0 | 14 |
| 29 | Chicago | 2002 | 113 | Comedy | 7.2 | 45.0 | 0 | 12 |
| 30 | Jumangi | 2020 | 120 | Action | 8.0 | 50.0 | 0 | 12 |
Se identifica el tipo de datos que tiene la variable datos siendo un data.frame y cada variable de datos.
type(datos)
pandas.core.frame.DataFrame
datos.dtypes
name object
year int64
length_min int64
genre object
average_rating float64
cost_millions float64
foreign int64
age_restriction int64
dtype: object
Se presenta valores estadístcos de los datos del archivo importado
datos.describe()
| year | length_min | average_rating | cost_millions | foreign | age_restriction | |
|---|---|---|---|---|---|---|
| count | 31.000000 | 31.000000 | 31.000000 | 31.000000 | 31.000000 | 31.000000 |
| mean | 1996.290323 | 116.903226 | 8.100000 | 23.193548 | 0.387097 | 12.903226 |
| std | 17.586346 | 24.888223 | 0.734847 | 32.201531 | 0.495138 | 5.028948 |
| min | 1936.000000 | 81.000000 | 5.200000 | 0.400000 | 0.000000 | 0.000000 |
| 25% | 1988.500000 | 99.500000 | 7.950000 | 3.750000 | 0.000000 | 12.000000 |
| 50% | 1999.000000 | 113.000000 | 8.300000 | 13.000000 | 0.000000 | 14.000000 |
| 75% | 2009.000000 | 123.500000 | 8.500000 | 25.250000 | 1.000000 | 16.000000 |
| max | 2020.000000 | 179.000000 | 9.300000 | 165.000000 | 1.000000 | 18.000000 |
La variable de estudio es el rating de las películas
print("average_rating")
print("Valor mínimo:", datos['average_rating'].min())
print("Valor máximo:",datos['average_rating'].max())
print("La media aritmética:",datos['average_rating'].mean())
print("Desviación Estándar:",datos['average_rating'].std())
print("Núm. de observaciones:",datos['average_rating'].count())
average_rating
Valor mínimo: 5.2
Valor máximo: 9.3
La media aritmética: 8.100000000000001
Desviaión Estándar: 0.7348469228349533
Núm. de observaciones: 31
La variable de interés es el idioma (foreign). Se determina la frecuencia.
ceros = datos['foreign'] == 0
print(ceros.value_counts())
frecuencia = (datos.groupby("foreign").agg(frequency=("foreign", "count")))
frecuencia
True 19
False 12
Name: foreign, dtype: int64
| frequency | |
|---|---|
| foreign | |
| 0 | 19 |
| 1 | 12 |
datos.groupby('foreign').count()['name'].plot(kind='bar')
<matplotlib.axes._subplots.AxesSubplot at 0x7f1471bc4350>
La variable de interés es el género (genre). Se determina la frecuencia.
datos.groupby('genre').count()['name'].plot(kind='bar')
<matplotlib.axes._subplots.AxesSubplot at 0x7fc8d59ec350>
El conjunto de datos que se presenta contiene una variedad de películas con sus respectivas características para conocer con gran detalle cuál es su posición en comparación con las demás. A continuación se hara un breve repaso de los puntos que se consideraron de mayor importancia.
El Rating de las películas fue uno de los principales factores que han influído en el análisis de las mismas, donde el valor máximo obtenido es 9,2 y el mínimo es 5,3. Por otro lado, según los datos el rating promedio por película es de 8.10 aproximadamente. Todo esto tomando en cuenta de que se hubo realizado en base a las 31 observaciones que se sucitaron y que los valores tienden a desviarse muy poco del valor medio.
En mi opinión, este puede ser un valor de gran importancia para determinar cuál es el género que mayor rating produce, y por lo tanto, mayor impacto en los factores económicos e incluso criticos del producto como tal. Yo pienso que para una industria como la del cine, siempre será importante conocer los resultados entorno al rating de las películas actuales, saber qué es lo que esta de moda y de esta forma actuar en respuesta a ello lo antes posible, básicamente el principio muy conocido de adaptarse al cambio.
En la última parte se presenta una gráfica con unos resultados bastante interesantes, ya que muestra el género que predomina en las películas que se analizaron, siendo este el “Drama”, seguido de la “Comedia” y después el “Crimen”. Esto, a mi parecer, claramente indica que las películas tienden a tener más este tipo de géneros porque han tomado en cuenta el recibimiento que han tenido, por ejemplo, a través del rating que se le ha dado. Otro de los puntos que me gustaría tocar es el apartado visual de los datos y su conceptualización, es decir, que me parece muy útil la forma en la que se presentan los resultados, detallada pero sencilla de comprender al mismo tiempo, y eso es realmente apreciable tanto para quien no forma parte del contexto de la apicación, pero más aún para aquellos análistas de datos que pueden llegar a compartir la información con otros de su campo.