4Geeks logo
4Geeks logo

Courses

Explora nuestra extensa colección de cursos diseñados para ayudarte a dominar varios temas y habilidades. Ya seas un principiante o un aprendiz avanzado, aquí hay algo para todos.

Coding Bootcamp

Aprende en vivo

Únete a nosotros en nuestros talleres gratuitos, webinars y otros eventos para aprender más sobre nuestros programas y comenzar tu camino para convertirte en desarrollador.

Próximos eventos en vivo

Catálogo de contenidos

Para los geeks autodidactas, este es nuestro extenso catálogo de contenido con todos los materiales y tutoriales que hemos desarrollado hasta el día de hoy.

Tiene sentido comenzar a aprender leyendo y viendo videos sobre los fundamentos y cómo funcionan las cosas.

Full-Stack Software Developer - 16w

Data Science and Machine Learning - 16 wks

Buscar en lecciones


IngresarEmpezar

Weekly Coding Challenge

Todas las semanas escogemos un proyecto de la vida real para que construyas tu portafolio y te prepares para conseguir un trabajo. Todos nuestros proyectos están construidos con ChatGPT como co-pilot!

Únete al reto

Podcast: Code Sets You Free

Un podcast de cultura tecnológica donde aprenderás a luchar contra los enemigos que te bloquean en tu camino para convertirte en un profesional exitoso en tecnología.

Escuchar el podcast
← Volver a Cómo hacerlo
Editar en Github

¿Cómo crear un DataFrame?

Escrito por:

Un DataFrame es una estructura de dos dimensiones, muy similar a una hoja de cálculo o una tabla en base de datos, veamos como crear un DataFrame a partir de una lista.

1import pandas as pd 2 3list_rrss = ['Facebook','Twitter','Instagram','Youtube'] 4 5# Crear dataframe a partir de una lista 6df_rrss = pd.DataFrame(list_rrss, columns=['Name']) 7 8print(df_rrss)

(output) de la variable df_rrss

Name
0Facebook
1Twitter
2Instagram
3Youtube

En este ejemplo, utilizamos la función DataFrame() para crear un DataFrame a partir de las lista list_rrss y su resultado se guarda en la variable df_rrss, a la función DataFrame() en este caso le pasamos dos argumentos, la variable list_rrss la cual serán los datos del DataFrame y columns donde se especifica el nombre de las columnas, en este caso Name. Finalmente, se muestra por la terminal el DataFrame con los nombres de las redes sociales en la columna Name.

🔗 Si quieres un tutorial sobre Pandas python, te invito a leer el Blog de 4Geeks, donde encontrarás mucha información relevante.

DataFrame en Pandas

Un DataFrame como se mencionó anteriormente es una estructura de dos dimensiones, para crear un DataFrame en Pandas, primero se necesita importar la librería Pandas y luego utilizar la clase pandas.DataFrame. La clase pandas.DataFrame permite varios parámetros a la hora de crearse, veamos cuales son estos parámetros:

1pandas.DataFrame(data, index, columns, dtype)
  • data: Representa los datos que utilizara el DataFrame, puede ser un objeto, una lista, un diccionario, otro DataFrame, entre otros.
  • index: Se utiliza cuando queremos especificar los índices del DataFrame, si no se le proporciona este parámetro por defecto genera índices numéricos.
  • columns: Se utiliza cuando queremos especificar los nombres de las columnas del DataFrame, si no se le proporciona este parámentro por defecto genera índices numéricos.
  • dtype: Se utiliza para especificar el tipo de datos de las columnas DataFrame, por ejemplo, int, float, object, etc. Si no se le proporciona este parámetro, por defecto infiere el tipo de dato a partir de los datos suministrados.

Veamos un ejemplo donde hace uso de los parámetros antes mencionados:

1import pandas as pd 2 3data_countries = {'country': ['Spain', 'Germany', 'United Kingdom', 'Japan'], 4'date': ['2022', '2022', '2020', '2021'], 5'density': [94,234,275,332], 6'population': [47615034, 83794000,67081000,125507000]} 7 8indexes = ['a', 'b', 'c','d'] 9columns = ['country', 'date', 'density', 'population'] 10 11df_data_countries = pd.DataFrame(data=countries, index=indexes, columns=columns, dtype=str) 12 13print(df_data_countries) 14

(output) de la variable df_data_countries

countrydatedensitypopulation
aSpain20229447615034
bGermany202223483794000
cUnited Kingdom202027567081000
dJapan2021332125507000

En este ejemplo se crea un DataFrame utilizando el diccionario data_countries, adicionalmente se especifican los índices y nombres de las columnas con las listas indexes y columns respectivamente.

Formas de crear un DataFrame

Existen distintas maneras de crear un DataFrame en Python, a continuación explicaremos algunas de ellas.

Creación de un dataframe vacio

1import pandas as pd 2 3# Creacion de un dataframe vacio 4df= pd.DataFrame() 5 6print(df)

(output) de la variable df

Empty DataFrame Columns: [] Index: []

Creación de un dataframe a partir de una lista de listas

1import pandas as pd 2 3list_products = [ 4 ['iPhone 12', 100, 500], 5 ['Samsung Galaxy S21', 200, 1000], 6 ['Sony PlayStation 5', 150, 750], 7 ['Nintendo Switch', 50, 250] 8] 9 10df_list_products = pd.DataFrame(list_products, columns=['Product', 'Quantity', 'Price']) 11 12print(df_list_products)

(output) de la variable df_list_products

ProductQuantityPrice
0iPhone 12100500
1Samsung Galaxy S212001000
2Sony PlayStation 5150750
3Nintendo Switch5025

Creación de un DataFrame desde un diccionario de listas

1import pandas as pd 2 3billionaires = { 4 'name': ['Jeff Bezos', 'Elon Musk', 'Bernard Arnault', 'Bill Gates'], 5 'age': [59, 51, 74, 67], 6 'fortune': [177000000000, 151000000000, 150000000000, 124000000000] 7} 8 9df_billionaires = pd.DataFrame(billionaires) 10 11print(df_billionaires)

(output) de la variable df_billionaires

nameagefortune
0Jeff Bezos59177000000000
1Elon Musk51151000000000
2Bernard Arnault74150000000000
3Bill Gates67124000000000

Creación de un dataframe a partir de una lista de diccionarios

1import pandas as pd 2 3 4players = [ 5 {'Name': 'Lionel Messi', 'Team': 'Inter Miami CF', 'Salary': 67000000}, 6 {'Name': 'Cristiano Ronaldo', 'Team': 'Al-Nassr', 'Salary': 62000000}, 7 {'Name': 'Neymar Jr.', 'Team': 'Paris Saint-Germain', 'Salary': 56000000}, 8 {'Name': 'Kylian Mbappé', 'Team': 'Paris Saint-Germain', 'Salary': 42000000}, 9 {'Name': 'Mohamed Salah', 'Team': 'Liverpool', 'Salary': 40000000} 10] 11 12df_players = pd.DataFrame(players, index=['first', 'second', 'third', 'fourth', 'fifth']) 13 14 15print(df_players) 16

(output) de la variable df_players

NameTeamSalary
firstLionel MessiInter Miami CF67000000
secondCristiano RonaldoAl-Nassr62000000
thirdNeymar Jr.Paris Saint-Germain56000000
fourthKylian MbappéParis Saint-Germain42000000
fifthMohamed SalahLiverpool40000000

Métodos más importantes del dataframe

La clase pandas.DataFrame ofrece una amplia gama de métodos que pueden ser útiles a la hora de analizar datos, a continuación explicaremos los más importantes:

  • head(n): Este método retorna las primeras n filas del DataFrame.
1import pandas as pd 2 3 4players = [ 5 {'Name': 'Lionel Messi', 'Team': 'Inter Miami CF', 'Salary': 67000000}, 6 {'Name': 'Cristiano Ronaldo', 'Team': 'Al-Nassr', 'Salary': 62000000}, 7 {'Name': 'Neymar Jr.', 'Team': 'Paris Saint-Germain', 'Salary': 56000000}, 8 {'Name': 'Kylian Mbappé', 'Team': 'Paris Saint-Germain', 'Salary': 42000000}, 9 {'Name': 'Mohamed Salah', 'Team': 'Liverpool', 'Salary': 40000000} 10] 11 12 13df_players = pd.DataFrame(players) 14 15 16print(df_players.head(2))

(output) de la variable df_players aplicando el método head()

NameTeamSalary
0Lionel MessiInter Miami CF67000000
1Cristiano RonaldoAl-Nassr62000000
  • tail(n): Este método retorna las últimas n filas del DataFrame.
1import pandas as pd 2 3 4players = [ 5 {'Name': 'Lionel Messi', 'Team': 'Inter Miami CF', 'Salary': 67000000}, 6 {'Name': 'Cristiano Ronaldo', 'Team': 'Al-Nassr', 'Salary': 62000000}, 7 {'Name': 'Neymar Jr.', 'Team': 'Paris Saint-Germain', 'Salary': 56000000}, 8 {'Name': 'Kylian Mbappé', 'Team': 'Paris Saint-Germain', 'Salary': 42000000}, 9 {'Name': 'Mohamed Salah', 'Team': 'Liverpool', 'Salary': 40000000} 10] 11 12 13df_players = pd.DataFrame(players) 14 15print(df_players.tail(2))

(output) de la variable df_players aplicando el método tail()

NameTeamSalary
3Kylian MbappéParis Saint-Germain42000000
4Mohamed SalahLiverpool40000000
  • info():Este método muestra información detallada sobre el DataFrame, por ejemplo, el número de filas y columnas, el tipo de datos de cada columna, entre otros datos.
1import pandas as pd 2 3billionaires = { 4 'name': ['Jeff Bezos', 'Elon Musk', 'Bernard Arnault', 'Bill Gates'], 5 'age': [59, 51, 74, 67], 6 'fortune': [177000000000, 151000000000, 150000000000, 124000000000] 7} 8 9df_billionaires = pd.DataFrame(billionaires) 10 11print(df_billionaires.info())

(output) de la variable df_billionaires aplicando el método info()

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 4 entries, 0 to 3
Data columns (total 3 columns):
 #   Column   Non-Null Count  Dtype
---  ------   --------------  -----
 0   name     4 non-null      object
 1   age      4 non-null      int64
 2   fortune  4 non-null      int64
dtypes: int64(2), object(1)
memory usage: 152.0+ bytes
None
  • describe(): Genera estadísticas descriptivas del DataFrame, como el recuento, la media, la desviación estándar, etc.
1import pandas as pd 2 3billionaires = { 4 'name': ['Jeff Bezos', 'Elon Musk', 'Bernard Arnault', 'Bill Gates'], 5 'age': [59, 51, 74, 67], 6 'fortune': [177000000000, 151000000000, 150000000000, 124000000000] 7} 8 9df_billionaires = pd.DataFrame(billionaires) 10 11print(df_billionaires.describe()) 12

(output) de la variable df_billionaires aplicando el método describe()

agefortune
count4.0000004.000000e+00
mean62.7500001.505000e+11
std9.9456862.164101e+10
min51.0000001.240000e+11
25%57.0000001.435000e+11
50%63.0000001.505000e+11
75%68.7500001.575000e+11
max74.0000001.770000e+11
  • loc[row_indexer, col_indexer]: Accede a un subconjunto de filas y columnas basándose en las etiquetas del índice.
1import pandas as pd 2 3 4players = [ 5 {'Name': 'Lionel Messi', 'Team': 'Inter Miami CF', 'Salary': 67000000}, 6 {'Name': 'Cristiano Ronaldo', 'Team': 'Al-Nassr', 'Salary': 62000000}, 7 {'Name': 'Neymar Jr.', 'Team': 'Paris Saint-Germain', 'Salary': 56000000}, 8 {'Name': 'Kylian Mbappé', 'Team': 'Paris Saint-Germain', 'Salary': 42000000}, 9 {'Name': 'Mohamed Salah', 'Team': 'Liverpool', 'Salary': 40000000} 10] 11 12df_players = pd.DataFrame(players, index=['first', 'second', 'third', 'fourth', 'fifth']) 13 14 15print(df_players.loc["first":"third", "Name":"Team"]) 16

(output) de la variable df_players aplicando el método loc[row_indexer, col_indexer]

NameTeam
firstLionel MessiInter Miami CF
secondCristiano RonaldoAl-Nassr
thirdNeymar Jr.Paris Saint-Germain
  • iloc[row_indexer, col_indexer]: Accede a un subconjunto de filas y columnas basándose en la posición de índice.
1import pandas as pd 2 3billionaires = { 4 'name': ['Jeff Bezos', 'Elon Musk', 'Bernard Arnault', 'Bill Gates'], 5 'age': [59, 51, 74, 67], 6 'fortune': [177000000000, 151000000000, 150000000000, 124000000000] 7} 8 9df_billionaires = pd.DataFrame(billionaires) 10 11print(df_billionaires.iloc[0:3, 0:2])

(output) de la variable df_billionaires aplicando el método iloc[row_indexer, col_indexer]

nameage
0Jeff Bezos59
1Elon Musk51
2Bernard Arnault74
  • sort_values(by): Este método permite ordenar el DataFrame por los valores de una columna o una lista de columnas.
1import pandas as pd 2 3 4players = [ 5 {'Name': 'Lionel Messi', 'Team': 'Inter Miami CF', 'Salary': 67000000}, 6 {'Name': 'Cristiano Ronaldo', 'Team': 'Al-Nassr', 'Salary': 62000000}, 7 {'Name': 'Neymar Jr.', 'Team': 'Paris Saint-Germain', 'Salary': 56000000}, 8 {'Name': 'Kylian Mbappé', 'Team': 'Paris Saint-Germain', 'Salary': 42000000}, 9 {'Name': 'Mohamed Salah', 'Team': 'Liverpool', 'Salary': 40000000} 10] 11 12df_players = pd.DataFrame(players) 13 14print(df_players.sort_values(by='Name', ascending=True)) 15

(output) de la variable df_players aplicando el método sort_values()

NameTeamSalary
1Cristiano RonaldoAl-Nassr62000000
3Kylian MbappéParis Saint-Germain42000000
0Lionel MessiInter Miami CF67000000
4Mohamed SalahLiverpool40000000
2Neymar Jr.Paris Saint-Germain56000000

Podemos concluir que los DataFrames son una herramienta muy poderosa para trabajar con datos tabulares, ya que nos permite analizar y manipular gran cantidad de datos que en ocasiones son muy complejos, por lo que son ampliamente utilizados en áreas de desarrollo como son Machine learning, Data Science, Data Analysis, entre otras.

🔗 Si te interesa conocer más a fondo cómo puedes utilizar la biblioteca de Pandas en Machine Learning te recomiendo que visites el artículo sobre pandas para machine learning, donde encontraras recursos muy utiles y explicaciones con ejemplos de código y videotutoriales que te ayudarán a enterder mejor esta librería y aprenderas a utilizar todas las caracteristicas mas importantes que ofrese.