La clase estuve muy bien. Solo tengo un comentario. Al minuto 11:25 se vuelve a repetir una parte del vídeo.
Librerías de manipulación de datos con Python
¿Por qué NumPy y Pandas?
NumPy
NumPy Array
Tipos de datos
Dimensiones
Creando arrays
Shape y Reshape
Funciones principales de NumPy
Copy
Condiciones
Operaciones
Quiz: NumPy
Pandas
Series y DataFrames en Pandas
Leer archivos CSV y JSON con Pandas
Filtrado con loc y iloc
Agregar o eliminar datos con Pandas
Manejo de datos nulos
Filtrado por condiciones
Funciones principales de Pandas
groupby
Combinando DataFrames
Merge y Concat
Join
Pivot y Melt
Apply
Quiz: Pandas
Cierre
Posibilidades con Pandas y NumPy
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Ya entendiste los conceptos básicos de Numpy, ahora hay que entender como funciona la librería de Pandas, esta nos ayuda a hacer una mejor exploración y análisis de los datos.
Pandas es una librería de Python especializada en el manejo y análisis de estructuras de datos. El nombre viene de “Panel data”.
• Velocidad
• Poco código
• Múltiples formatos de archivos
• Alineación inteligente
Es muy parecido a un array de una dimensión (o vector) de NumPy.
• Arreglo unidimensional indexado
• Búsqueda por índice
• Slicing
• Operaciones aritméticas
• Distintos tipos de datos
Muy parecido a las estructuras matriciales trabajadas con NumPy.
• Estructura principal
• Arreglo de dos dimensiones
• Búsqueda por índice (columnas o filas)
• Slicing
• Operaciones aritméticas
• Distintos tipos de datos
• Tamaño variable
Es un arreglo unidimensional indexado
import pandas as pd
Definiendo una lista con índices específicos
psg_players = pd.Series(['Navas','Mbappe','Neymar','Messi'], index=[1,7,10,30])
psg_players
---> 1 Navas
7 Mbappe
10 Neymar
30 Messi
dtype: object
Búsqueda por índices
dict = {1: 'Navas', 7: 'Mbappe', 10: 'Neymar', 30:'Messi'}
pd.Series(dict)
---> 1 Navas
7 Mbappe
10 Neymar
30 Messi
dtype: object
psg_players[7]
----> 'Mbappe'
Búsqueda mediante Slicing
psg_players[0:3]
-----> 0 Navas
1 Mbappe
2 Neymar
dtype: object
Similar a la estructura matricial
dict = {'Jugador':['Navas','Mbappe','Neymar','Messi'],
'Altura':[183.0, 170.0, 170.0, 163.0],
'Goles':[2, 200, 150, 500]}
df_players = pd.DataFrame(dict, index=[1,7,10,30])
---> Jugador Altura Goles
1 Navas 183 2
7 Mbappe 170 200
10 Neymar 170 150
30 Messi 163 500
Búsqueda por índices. Columnas
df_players.columns
---> Index(['Jugador', 'Altura', 'Goles'], dtype='object')
Búsqueda por índice.
df_players.index
------> RangeIndex(start=0, stop=4, step=1)
Descarga este DataFrame de Granada FC
Contribución creada por: Edward Giraldo.
Aportes 152
Preguntas 9
La clase estuve muy bien. Solo tengo un comentario. Al minuto 11:25 se vuelve a repetir una parte del vídeo.
Me parece que no habría que usar “dict” como nombre de variable ya que es una palabra reservada del lenguaje.
PANDAS
Manipulación y análisis de datos. El nombre viene de “Panel data”.
• Velocidad
• Poco código
• Múltiples formatos de archivos
• Alineación inteligente
Pandas Series
Es muy parecido a un array de una dimensión (o vector) de NumPy.
• Arreglo unidimensional indexado
• Búsqueda por índice
• Slicing
• Operaciones aritméticas
• Distintos tipos de datos
Pandas DataFrame
Muy parecido a las estructuras matriciales trabajadas con NumPy.
• Estructura principal
• Arreglo de dos dimensiones
• Búsqueda por índice (columnas o filas)
• Slicing
• Operaciones aritméticas
• Distintos tipos de datos
• Tamaño variable
Messu=Messi + Siiuuuuuuuu
También se pueden construir DataFrames con listas que contengan diccionarios:
(enlace del notion donde recopilo aportes de la clase)
PANDAS
Pandas es una librería de Python especializada en el manejo y análisis de estructuras de datos. Se caracterisa por su:
• Velocidad
• Poco código
• Múltiples formatos de archivos
• Alineación inteligente
psdg_players = pd.Series(
['Navas','Mbappe','Neymar','Messi'],
index=[1,7,10,30]
)
psdg_players
psdg_players = pd.Series(['Navas','Mbappe','Neymar','Messi'])
psdg_players
dictionary = {1: 'Navas', 7:'Mbappe', 10:'Neymar', 30:'Messi'}
pd.Series(dictionary)
# Funciona igual que Numpy
psdg_players[0:3]
dictionary = {'jugador':['Navas','Mbappe','Neymar','Messi'],
'altura':[183.0, 170.0, 170.0, 165.0],
'goles':[2, 200, 200, 200]
}
pd.DataFrame(dictionary, index=[1,7,10,30])
pd.DataFrame(dictionary)
df_Players = pd.DataFrame(dictionary)
df_Players
df_Players.columns
Indice default
df_Players.index
Indice Personalizado
df_Players = pd.DataFrame(dictionary, index=[1,7,10,30])
df_Players.index
dataframe_reto = {
'Jugador':['Luis Suárez','Jorge Molina', 'Antonio Puertas', 'Germán Sánchez', 'Luis Milla', 'Luís Manuel Arantes Maximiano'],
'Posición':['Delantero', 'Delantero', 'Centrocampista', 'Defensa', 'Centrocampista', 'Portero'],
'Número':[9, 23, 10, 6, 5, 1],
'Altura':[185.0, 187.0, 185.0, 187.0, 175.0, 190.0],
'Goles':[7, 7, 5, 2, 2, 0]
}
#Compruebo que el largo del JSON este bien en todos los arrays
for i in dataframe_reto:
print(len(dataframe_reto[i]))
granadaCF_players = pd.DataFrame(dataframe_reto, index=dataframe_reto['Número'])
granadaCF_players
Esta parte del curso es toda con datasets.
Les dejo uno que me pareció divertido y me fue muy útil para practicar las clases de este módulo.
Es un dataset de pokemon–>link. Está super bien construido, con muchas columnas de distintos tipos y toda la info perfectamente cargada.
Algo curioso que noté es que al momento de llamar a pd.Series es necesario que la “S” de Series esté en mayúscula. De lo contrario no lo reconoce.
Comparto mi aporte, aunque no es del granada fc
<code> formula1 = pd.DataFrame(
{
'Nombre':['Charles Leclerc','Carlos Sainz','Lewis Hamilton','George Russell', 'Max Verstapen','Sergio Perez','Lando Norris', 'Daniel Ricciardo'],
'Equipo':['Ferrari','Ferrari','Mercedes','Mercedes','RedBull','RedBull','Mclaren','Mclaren'],
'Pais':['Monaco','España','Reino Unido','Reino Unido','Paises Bajos','Mexico','Reino Unido', 'Australia'],
'Edad':['24','27','37','24','24','32','22','32'],
'Numero':['16','55','44','63','1','11','4','3'],
'Podios':['16','8','183','2','53','12','3','32'],
'Victorias':['4','0','103','0','21','2','0','8']
}
)
formula1
En la clase conocimos la estructura central de pandas, el DataFrame, que permite almacenar datos tabulares: cada fila es una observación y cada columna una propiedad. Aquí voy a enlistar los tres métodos que considero más útiles para familizarte con un nuevo DataFrame con el que estés comenzando a trabajar.
.
Éste método permite ver, por defecto, las cinco primeras filas de un DataFrame. Por supuesto, puedes pasar como argumento el número de filas que deseas ver.
.
.
Este método te muestra los nombres de las columnas del DataFrame, la cantidad de valores nulos en cada una y el data type que contienen.
.
.
Devuelve un DataFrame con estadísticos básicos para cada columna de tu DataFrame original. Es epecialmente útil para columnas que contienen datos numéricos.
.
Mi dataframe y mis apuntes aqui
Aqui les comparto mi DataFrame, lo organice para mostrar jugadores con respecto a los datos.
Hola, yo quise hacer un data frame con los jugadores de la selección colombia del mundial 2014 especialmente el partido Colombia vs Uruguay.
<
jugadores_Col_2014 = {
'Nombre':['David Ospina','Cristian Zapata','Mario Yepes','Pablo Armero',
'Juan Zuñiga','Carlos Sanchez','Abel Aguilar','James Rodriguez',
'Juan Guillermo Cuadrado','Teofilo Gutierrez','Jackson Martinez'],
'Posición':['AR','DF','DF','DF','DF','MC','MC','MC','MC','DL','DL'],
'Dorsal' : [1,2,3,7,18,6,8,10,11,9,21],
'Club Actual':['Al-Nassar FC','San Lorenzo de Almagro','Retirado',
'Retirado','Retirado','Santa Fe','Retirado','AL-Rayyan SC',
'Juventus','Deportivo Cali','Retirado'],
}
jugadores_COL_vs_URU_2014 = pd.DataFrame(jugadores_Col_2014)
jugadores_COL_vs_URU_2014
>
–
Pandas es una librería de Python especializada en el manejo y análisis de estructuras de datos
–
Pandas → Analitica, manipulacion y procesamiento de datos
[Panel Data]
–
Import pandas as pd
–
Series y DataFrames
1ero ✅ Parecido a arrays 1 Dimendios
2do ✅ Array pero de forma matricial
[ Col → Indice ; Fil → clave ] es como un diccionario
–
☑️ Velocidad
☑️ Poco código
☑️ Múltiples formatos de archivos
☑️ Alineación inteligente
Series
import pandas as pd
#definiendo una lista con indices especificos
psg_players = pd.Series(['Navas','Mbappe','Neymar','Messi'],
index=[1,7,10,30])
psg_players ----> 1 Navas
7 Mbappe
10 Neymar
30 Messi
dtype: object
psg_players[2]
-----> 'Neymar'
psg_players[0:3]
-----> 0 Navas
1 Mbappe
2 Neymar
dtype: object
Pandas
dict = {'Jugador':['Navas','Mbappe','Neymar','Messi'],
'Altura':[183.0, 170.0, 170.0, 163.0],
'Goles':[2, 200, 150, 500]}
df_players = pd.DataFrame(dict)
-----> Jugador Altura Goles
0 Navas 183 2
1 Mbappe 170 200
2 Neymar 170 150
3 Messi 163 500
df_players.columns
------> Index(['Jugador', 'Altura', 'Goles'], dtype='object')
df_players.index
------> RangeIndex(start=0, stop=4, step=1)
Aquí mi reto:
.
Hay distintas formas de crear un data frame, alguno de ellos.
Desde un diccionario de listas (metodo visto en clase).
Desde una matriz estructurada o de registros.
Desde una lista de diccionarios.
Desde una lista de series.
Fuente https://pandas.pydata.org/docs/user_guide/dsintro.html
DATOS:
‘Jugador’:[‘Luis Suárez’,‘Jorge Molina’, ‘Antonio Puertas’, ‘Germán Sánchez’, ‘Luis Milla’, ‘Luís Manuel Arantes Maximiano’]
‘Posición’:[‘Delantero’, ‘Delantero’, ‘Centrocampista’, ‘Defensa’, ‘Centrocampista’, ‘Portero’]
‘Número’:[9, 23, 10, 6, 5, 1]
‘Altura’:[185.0, 187.0, 185.0, 187.0, 175.0, 190.0]
‘Goles’:[7, 7, 5, 2, 2, 0]
Desde un diccionario de listas (metodo visto en clase)
import pandas as pd
dictDeListas = {'Jugador':['Luis Suárez','Jorge Molina', 'Antonio Puertas', 'Germán Sánchez', 'Luis Milla', 'Luís Manuel Arantes Maximiano'],
'Posicion':['Delantero', 'Delantero', 'Centrocampista', 'Defensa', 'Centrocampista', 'Portero'],
'Altura':[185.0, 187.0, 185.0, 187.0, 175.0, 190.0],
'Goles':[7, 7, 5, 2, 2, 0]
}
df_dictDeListas = pd.DataFrame(dict_granadafc,index=[9, 23, 10, 6, 5, 1])
df_dictDeListas
import numpy as np
npMatiz6x4 = np.zeros((6,), dtype=[("Jugador", "a30"), ("Posicion", "a15"), ("Altura", "f4"), ("Goles", "i4")])
npMatiz6x4[:] = [("Luis Suarez","Delantero",185.0,7),("Jorge Molina","Delantero",187.0,7),("Antonio Puertas","Centrocampista",185.0,5),("German Sanchez","Defensa",187.0,2),("Luis Milla","Centrocampista",175.0,2),("Luis Manuel Arantes Maximiano","Portero",190.0,0)]
npMatiz6x4
array([(b’Luis Suarez’, b’Delantero’, 185., 7),
(b’Jorge Molina’, b’Delantero’, 187., 7),
(b’Antonio Puertas’, b’Centrocampista’, 185., 5),
(b’German Sanchez’, b’Defensa’, 187., 2),
(b’Luis Milla’, b’Centrocampista’, 175., 2),
(b’Luis Manuel Arantes Maximiano’, b’Portero’, 190., 0)],
dtype=[(‘Jugador’, ‘S30’), (‘Posicion’, ‘S15’), (‘Altura’, ‘<f4’), (‘Goles’, ‘<i4’)])
df_npMatiz6x4 = pd.DataFrame(npMatiz6x4,index=[9, 23, 10, 6, 5, 1])
#np_Matiz6x4
listadic = [{"Jugador":"Luis Suárez","Posicion":"Delantero","Altura":185,"Goles":7},
{"Jugador":"Jorge Molina","Posicion":"Delantero","Altura":187,"Goles":7},
{"Jugador":"Antonio Puertas","Posicion":"Centrocampista","Altura":185,"Goles":5},
{"Jugador":"Germán Sánchez","Posicion":"Defensa","Altura":187,"Goles":2},
{"Jugador":"Luis Milla","Posicion":"Centrocampista","Altura":175,"Goles":2},
{"Jugador":"Luís Manuel Arantes Maximiano","Posicion":"Portero","Altura":190,"Goles":0}]
listadic
[{‘Altura’: 185,
‘Goles’: 7,
‘Jugador’: ‘Luis Suárez’,
‘Posicion’: ‘Delantero’},
{‘Altura’: 187,
‘Goles’: 7,
‘Jugador’: ‘Jorge Molina’,
‘Posicion’: ‘Delantero’},
{‘Altura’: 185,
‘Goles’: 5,
‘Jugador’: ‘Antonio Puertas’,
‘Posicion’: ‘Centrocampista’},
{‘Altura’: 187,
‘Goles’: 2,
‘Jugador’: ‘Germán Sánchez’,
‘Posicion’: ‘Defensa’},
{‘Altura’: 175,
‘Goles’: 2,
‘Jugador’: ‘Luis Milla’,
‘Posicion’: ‘Centrocampista’},
{‘Altura’: 190,
‘Goles’: 0,
‘Jugador’: ‘Luís Manuel Arantes Maximiano’,
‘Posicion’: ‘Portero’}]
df_listadic = pd.DataFrame(listadic,index=[9, 23, 10, 6, 5, 1])
#df_listadic
listaSeries = {
"Jugador" : pd.Series(["Luis Suárez","Jorge Molina","Antonio Puertas","Germán Sánchez","Luis Milla","Luís Manuel Arantes Maximiano"],index=[9, 23, 10, 6, 5, 1]),
"Posicion": pd.Series(["Delantero","Delantero","Centrocampista","Defensa","Centrocampista","Portero"],index=[9, 23, 10, 6, 5, 1]),
"Altura" : pd.Series([185,187,185,187,175,190],index=[9, 23, 10, 6, 5, 1]),
"Goles" : pd.Series([7,7,5,2,2,0],index=[9, 23, 10, 6, 5, 1])
}
listaSeries
{‘Altura’: 9 185
23 187
10 185
6 187
5 175
1 190
dtype: int64, ‘Goles’: 9 7
23 7
10 5
6 2
5 2
1 0
dtype: int64, ‘Jugador’: 9 Luis Suárez
23 Jorge Molina
10 Antonio Puertas
6 Germán Sánchez
5 Luis Milla
1 Luís Manuel Arantes Maximiano
dtype: object, ‘Posicion’: 9 Delantero
23 Delantero
10 Centrocampista
6 Defensa
5 Centrocampista
1 Portero
dtype: object}
df_listaSeries = pd.DataFrame(listaSeries)
#df_listaSeries
Como pequeño aporte le añadí unos gráficos:
El código que emplee fue:
import matplotlib.pyplot as plt
import seaborn as sns
# Graficando
plt.figure(figsize=(12, 6))
# Gráfico de barras para los goles
plt.subplot(1, 2, 1)
sns.barplot(x='Jugador', y='Goles', data=gt_Players, palette='viridis', legend=False)
plt.title('Goles de los Jugadores')
plt.xlabel('Jugador')
plt.ylabel('Goles')
plt.xticks(rotation=45) # Rotar las etiquetas de los jugadores para mejor legibilidad
# Gráfico de barras para la altura
plt.subplot(1, 2, 2)
barplot = sns.barplot(x='Jugador', y='Altura', data=gt_Players, palette='viridis', legend=False)
plt.title('Altura de los Jugadores')
plt.xlabel('Jugador')
plt.ylabel('Altura (cm)')
plt.xticks(rotation=45) # Rotar las etiquetas de los jugadores para mejor legibilidad
# Añadir etiquetas de datos dentro de cada barra
for p in barplot.patches:
barplot.annotate(format(p.get_height(), '.1f'),
(p.get_x() + p.get_width() / 2., p.get_height()),
ha = 'center', va = 'center',
xytext = (0, -10),
textcoords = 'offset points')
plt.tight_layout()
plt.show()
Pandas
Es la librerpia de Python que nos permite trabajar con DataFrames basada en NumPy; maneja dos tipos de datos
my_serie = pd.Series(data)
, admite el parámetro index que nos premite nombrar el índice al momento de declarar la variable; tambien podemos declarar la serie por medio de diccionarios.my_dataframe = pd.DataFrame(data)
A diferencia de NumPy permite almacenar distintos tipos de datos.
Para referirnos a los datos almacenados usamos los indices y el nombre de columnas.
Oye, hay un error. Este video debería estar antes de Cómo cargar archivos en Pandas. Están al revés el 11 y el 12.
Algunas de las características de Pandas DataFrame son:
Me encanto este ejercicio con pandas el cual tiene como finalidad aprender y mejorar nuestras tablas de manera especifica. Ademas simplifica bastante codigo en python gracias a sus librerias.
Aqui esta mi reto:
![](
genial clase!
Mi aporte :
✅
golazo!
En esta clase sobre pandas aprendi que los dataframes son estructuras matriciales que nos permiten ver informacion mas compacta y con gran cantidad de elementos. Tambien que se pueden crear a partir de diccionarios y en su defecto a partir tambien de lista de diccionarios, es decir, siempre debe estar el conjunto llave\valor.
.
A continuacion presento mi solucion al reto:
.
No se ingresan por el index como dice el, se accede es por key
chelsea = {'Jugador': ['Drogba','Lampard','Terry','Cech', 'Kanté'],
'dorsal': [11, 8, 26, 1, 7],
'posicion': ['delantero', 'volante 8', 'defensa central', 'arquero','volante recuperador'],
'Pierna': ['derecha', 'derecha', 'derecha', 'izquierda', 'derecha'],
'goles': [164.0, 211.0, 67.0, 0.0, 13.0],
'partidos': [381, 648.0, 717.0, 494.0, 269.0]
}
df.describe()
Número Altura Goles
count 6.000000 6.000000 6.000000
mean 9.000000 184.833333 3.833333
std 7.563068 5.154286 2.926887
min 1.000000 175.000000 0.000000
25% 5.250000 185.000000 2.000000
50% 7.500000 186.000000 3.500000
75% 9.750000 187.000000 6.500000
max 23.000000 190.000000 7.000000
from pandas.core.internals.base import Index
dict2={‘Jugador’:[‘Luis Suárez’,‘Jorge Molina’, ‘Antonio Puertas’, ‘Germán Sánchez’, ‘Luis Milla’, ‘Luis Manuel Arantes Maximiano’],
‘Posición’:[‘Delantero’, ‘Delantero’, ‘Centrocampista’, ‘Defensa’, ‘Centrocampista’, ‘Portero’],
‘Número’:[9, 23, 10, 6, 5, 1],
‘Altura’:[185.0, 187.0, 185.0, 187.0, 175.0, 190.0],
‘Goles’:[7, 7, 5, 2, 2, 0]
}
Jugador Posición Número Altura Goles
0 Luis Suárez Delantero 9 185.0 7
1 Jorge Molina Delantero 23 187.0 7
2 Antonio Puertas Centrocampista 10 185.0 5
3 Germán Sánchez Defensa 6 187.0 2
4 Luis Milla Centrocampista 5 175.0 2
5 Luis Manuel Arantes Maximiano Portero 1 190.0
Datos estadísticos extraidos de la tabla:
df[‘Altura’].max()
190.0
df[‘Goles’].min()
0
df[‘Goles’].max()
7
df[‘Altura’].mean()
184.83
df[‘Altura’].median()
186.0
df[‘Altura’].std()
5.15
df[‘Altura’].var()
26.56
data = {
'Nombre': ['Mohamed Salah', 'Sadio Mané', 'Roberto Firmino', 'Virgil van Dijk', 'Trent Alexander-Arnold'],
'Posición': ['Delantero', 'Delantero', 'Delantero', 'Defensa', 'Defensa'],
'Goles en la temporada': [20, 15, 10, 2, 5],
'Asistencias en la temporada': [10, 8, 12, 1, 12],
'G/A en la temporada': [30, 23, 22, 3, 17],
'Valor de mercado': ['€120M', '€100M', '€90M', '€80M', '€75M']
}
dorsales = [11, 10, 9, 4, 66]
df_liverpool = pd.DataFrame(data, index=dorsales)
Desafío listo
Solución al reto:
Mi aporte:
Mi aporte basado en el juego Brawl stars:
Y aquí está el team Granada con sus columnas y indexs… 😃
dict = { 'Jugador':['Luis Suárez','Jorge Molina', 'Antonio Puertas', 'Germán Sánchez', 'Luis Milla', 'Luís Manuel Arantes Maximiano'],
'Posición':['Delantero', 'Delantero', 'Centrocampista', 'Defensa', 'Centrocampista', 'Portero'],
'Número':[9, 23, 10, 6, 5, 1],
'Altura':[185.0, 187.0, 185.0, 187.0, 175.0, 190.0],
'Goles':[7, 7, 5, 2, 2, 0]
}
pd.DataFrame(dict, index=[9, 23, 10, 6, 5, 1])
granada_player = pd.DataFrame(dict,index=[9, 23, 10, 6, 5, 1])
granada_player.columns
granada_player.index
dict = {
‘jugador’:[‘Luis Suarez’,‘Jorge Molina’, ‘Antonio Puertas’, ‘German Sanchez’, ‘Luis Milla’, ‘Luis Manuel Arantes Maximiano’],
‘posicion’: [‘Delantero’, ‘Delantero’, ‘Centrocampista’, ‘Defensa’, ‘Centrocampista’, ‘Portero’],
‘altura’:[185.0, 187.0, 185.0, 187.0, 175.0, 190.0],
‘goles’:[7, 7, 5, 2, 2, 0]
}
El index son los numeros de las camisetas:
df_jugadores= pd.DataFrame(dict, index=[9, 23, 10, 6, 5, 1])
Pandas Series
Pandas DataFrame
import pandas as pd
psg_players = pd.Series(['Navas', 'Mbappe', 'Neymar', 'Messi'],
index=[1,7,10,30]
)
psg_players
pd.Series(['Navas', 'Mbappe', 'Neymar', 'Messi'],
)
dict={1:'Navas',7:'Mbappe',10:'Neymar',30:'Messi'}
pd.Series(dict)
psg_players[0:3]
dict= {'Jugador':['Navas', 'Mbappe', 'Neymar', 'Messi'],
'Altura':[183,170,175,160],
'Goles':[0,200,300,348]
}
df_players=pd.DataFrame(dict)
df_players.columns
df_players.index
dict={‘Jugador’:[‘Luis Suárez’,‘Jorge Molina’, ‘Antonio Puertas’, ‘Germán Sánchez’, ‘Luis Milla’, ‘LuÃs Manuel Arantes Maximiano’],
‘Posición’:[‘Delantero’, ‘Delantero’, ‘Centrocampista’, ‘Defensa’, ‘Centrocampista’, ‘Portero’],
‘Altura’:[185.0, 187.0, 185.0, 187.0, 175.0, 190.0],
‘Goles’:[7, 7, 5, 2, 2, 0]
}
estdisticas_granda = pd.DataFrame(dict)
estdisticas_granda
Platzi pratocinando al granada. Wow. Cada vez se superan.
granada = {'Jugador':['Luis Suarez','Jorge Molina', 'Antonio Puertas', 'German Sanchez', 'Luis Milla', 'Luis Manuel Arantes Maximiano'],
'Posicion':['Delantero', 'Delantero', 'Centrocampista', 'Defensa', 'Centrocampista', 'Portero'],
'Numero':[9, 23, 10, 6, 5, 1],
'Altura':[185.0, 187.0, 185.0, 187.0, 175.0, 190.0],
'Goles':[7, 7, 5, 2, 2, 0]
}
granada_df = pd.DataFrame(granada)
granada_df.set_index('Numero', inplace=True)
granada_df.head()
Hice mi DataFrame con personajes de starwars jeje
<champions_dict = {'Player':['Erling Haland', 'Mohamed Saláh', 'Kylian Mbappe','Joao Mario','Vinicius Jr','Robert Lewandowski','Mehdi Taremi','Rafa Silva','Giacomo Raspadori','Victor Osimhen','Erick Choupo-Moting','Mohammed Kudus','Leroy Sané','Jude Bellingham','Giovani Simeone'],
'Team':['Manchester city','Liverpool','Paris Saint Germain','Benfica','Real Madrid','Barcelona FC','Porto FC','Benfica','Napoli','Napoli','Bayern Munich','Ajax FC','Bayern Munich','Borussia Dortmund','Napoli'],
'Country of player': ['Norway', 'Egypt','France','Portugal','Brazil','Poland','Iran','Portugal','Italy','Nigeria','Cameroon','Ghana','Germany','England','Argentina'],
'GF':[10,8,7,6,6,5,5,5,4,4,4,4,4,4,4],
'PJ':[6,8,8,8,8,5,7,8,5,5,6,6,6,7,7],
'Goals for match':[1.67,1.0,0.88,0.75,0.75,1.0,0.71,0.63,0.80,0.80,0.67,0.67,0.67,0.57,0.57]
df_champions = pd.DataFrame(champions_dict, index = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15])
df_champions
}>
Mi aporte del reto:
porque pones a messi ultimo -.-
Me parece o este vídeo iba antes que el 12 ?
dict_platzi = {
'Jugador':['Luis Suárez','Jorge Molina', 'Antonio Puertas', 'Germán Sánchez', 'Luis Milla', 'Luís Manuel Arantes Maximiano'],
'Posición':['Delantero', 'Delantero', 'Centrocampista', 'Defensa', 'Centrocampista', 'Portero'],
'Número':[9, 23, 10, 6, 5, 1],
'Altura':[185.0, 187.0, 185.0, 187.0, 175.0, 190.0],
'Goles':[7, 7, 5, 2, 2, 0]
}
df_platzi = pd.DataFrame(dict_platzi)
df_platzi
Descarga este DataFrame de Granada FC
Crea tus propios DataFrames, con los índices que quieras y comparte tus resultados
import pandas as pd
dict = {
'Jugador':['Luis Suárez','Jorge Molina', 'Antonio Puertas', 'Germán Sánchez', 'Luis Milla', 'Luís Manuel Arantes Maximiano'],
'Posición':['Delantero', 'Delantero', 'Centrocampista', 'Defensa', 'Centrocampista', 'Portero'],
'Número':[9, 23, 10, 6, 5, 1],
'Altura':[185.0, 187.0, 185.0, 187.0, 175.0, 190.0],
'Goles':[7, 7, 5, 2, 2, 0]
}
df_GFC=pd.DataFrame(dict)
df_GCF_players = pd.DataFrame(dict, index=df_GFC['Número'])
df_GCF_players
Jugador Posición Número Altura Goles
Número
9 Luis Suárez Delantero 9 185.0 7
23 Jorge Molina Delantero 23 187.0 7
10 Antonio Puertas Centrocampista 10 185.0 5
6 Germán Sánchez Defensa 6 187.0 2
5 Luis Milla Centrocampista 5 175.0 2
1 Luís Manuel Arantes Maximiano Portero 1 190.0 0
Si quieren acceder a los valores por posición como en las listas y por los indices que definieron traten esto:
# Access values by integer location
print(psg_players.iloc[0]) # Output: Navas
dict_gnd_players = {'Jugador':['Luis Suarez','Jorge Molina', 'Antonio Puertas', 'German Sanchez', 'Luis Milla', 'Luis Manuel Arantes Maximiano'],
'Posiciónn':['Delantero', 'Delantero', 'Centrocampista', 'Defensa', 'Centrocampista', 'Portero'],
'Altura':[185.0, 187.0, 185.0, 187.0, 175.0, 190.0],
'Goles':[7, 7, 5, 2, 2, 0]}
df_gnd_players = pd.DataFrame(dict_gnd_players, index = [9, 23, 10, 6, 5, 1])
df_gnd_players
Los filtre por la altura:
df_gnd_players[df_gnd_players["Altura"]> 185]
A seguir aprendiendo 😃
Utilizando los datos del Granada CF para crear un DataFrame:
import pandas as pd
granada_cf = {
'Jugador':['Luis Suárez','Jorge Molina', 'Antonio Puertas', 'Germán Sánchez', 'Luis Milla', 'Luís Manuel Arantes Maximiano'],
'Posición':['Delantero', 'Delantero', 'Centrocampista', 'Defensa', 'Centrocampista', 'Portero'],
'Altura':[185.0, 187.0, 185.0, 187.0, 175.0, 190.0],
'Goles':[7, 7, 5, 2, 2, 0]
}
df_granada = pd.DataFrame(granada_cf, index=[9, 23, 10, 6, 5, 1]) #asignando los números de jugador como índices
df_granada.sort_index(ascending=True) #imprimiendo el DataFrame ordenando por el índice en forma ascendente
Mi aporte es el siguiente:
Cambiándo el indice:
dict_granada_cf = {
'Jugador':['Luis Suarez','Jorge Molina', 'Antonio Puertas', 'German Sanchez', 'Luis Milla', 'Luis Manuel Arantes Maximiano'],
'Posicion':['Delantero', 'Delantero', 'Centrocampista', 'Defensa', 'Centrocampista', 'Portero'],
'Numero':[9, 23, 10, 6, 5, 1],
'Altura':[185.0, 187.0, 185.0, 187.0, 175.0, 190.0],
'Goles':[7, 7, 5, 2, 2, 0]
}
pd.DataFrame(dict_granada_cf)
My challenge:
Mii Aporte
import pandas as pd
jugadores=['Luis Suárez','Jorge Molina', 'Antonio Puertas', 'Germán Sánchez', 'Luis Milla', 'Luís Manuel Arantes Maximiano']
posiciones=['Delantero', 'Delantero', 'Centrocampista', 'Defensa', 'Centrocampista', 'Portero']
numeros=[9, 23, 10, 6, 5, 1]
alturas=[185.0, 187.0, 185.0, 187.0, 175.0, 190.0]
goles=[7, 7, 5, 2, 2, 0]
df_granadaFc = pd.DataFrame({
'Jugadores':jugadores,
'Posiciones':posiciones,
'altura':alturas,
'goles':goles
},index=numeros)
df_granadaFc
Platzi Challenge
Por el nombre “Numpy” imaginé que se trataba de una librería solo para números y utilizaremos pandas para ello. Ahora se que numpy soporta strings, ¿Porqué nunca lo vimos en las clases?
Ejericicio jugadores del Granada patrocinados por Platzi
Mi codigo para el reto del equipo Granada
import pandas as pd
list_dict = {"jugador":["Luis Suarez",'Jorge Molina', 'Antonio Puertas', 'German Sanchez', 'Luis Milla', 'Luis Manuel Arantes Maximiano'],
"Posicion":['Delantero', 'Delantero', 'Centrocampista', 'Defensa', 'Centrocampista', 'Portero'],
"Numero": [9, 23, 10, 6, 5, 1],
"Altura": [185.0, 187.0, 185.0, 187.0, 175.0, 190.0],
"Goles": [7, 7, 5, 2, 2, 0]
}
df_list_dict = pd.DataFrame(list_dict)
df_list_dict
![](
Uso VSC para escribir los notebooks. Hice el ejemplo con la información de los recursos 😄
Por si no han instalado la librería de Pandas, solo tienen que escribir en su terminal:
pip install pandas
Messu es el mejor jugador de la historia de Argentina jaja
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?