Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Estructura de datos: DataFrames

23/38
Recursos

DataFrames son simplemente una tabla donde las filas y las columnas tienen etiquetas, se puede construir de diferentes formas pero siempre debemos considerar que la estructura que necesitamos construir para inicializarla tiene que ser bidimensional. Una matriz y puede ser una lista de listas, lista de tuplas, un diccionario de Python u otro DataFrame.

Si solo tenemos una dimensión a eso no le llamamos DataFrame, le llamamos Serie. Cuando utilizamos un diccionario las llaves se convierten en las llaves de la columna.

Aportes 33

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Añadiendo nombre a las Columnas y a las Filas.

Algo importante en los DataFrame es la manera diferente en que los diccionarios enumeran con respecto a las listas de listas:

En el diccionario cada llave indexa una columna de datos

frame_test = pd.DataFrame({1999: [74,38,96,51],
                          2000: [57,62,46,96],
                          2001: [15,1,23,25]})
frame_test

Por eso con este código obtenemos una matriz de 3 columnas y 4 filas

Pero en la lista de listas cada lista indexa una fila de datos

frame_test3 = pd.DataFrame([[74,38,96,51],
                           			[57,62,46,96],
                           			[15,1,23,25]],
						 columns=[1999,2000,2001,2002])
frame_test3 

Por eso con este código obtenemos una matriz de 4 columnas y 3 filas

al igual con las columnas se le puede pasar un argumento para el indice:

frame_test = pd.DataFrame([[200,201,202],
                            [100,501,202],
                            [300,251,502]],columns=[1999,2000,2001],index=['comida','bebida','extra'])
frame_test

	       1999	  2000	2001
comida	200	   201	202
bebida	100	   501	202
extra	300     251	502

que libro puedo tomar como apoyo?

Para el ejemplo con listas hay un error, toca transponer las listas, si comparamos la que se hizo con diccionario es muy diferente a la que se hizo con listas y los resultados son muy diferentes

En el caso que quieran exportar su data frame como una imagen png, pueden instalar el siguiente paquete:

pip install dataframe_image
<import dataframe_image as dfi

def _data_frame(player):
    df_player = pd.DataFrame(player._stats, index = [0,1,2,3,4])
    dfi.export(df_player, 'df_player.png')>

Para añadir nombre a las filas.

frame_test= pd.DataFrame([[74,38,39],
                        [34,32,32],
                        [39,39,23]],columns=[1999,2000,2001], index=['a','b','c'])
frame_test

1999	2000	2001
a	74	38	39
b	34	32	32
c	39	39	23

El orden de los datos entre generar la instancia del dataframe con un dictionario (test1) respecto a una lista de listas (test2). En el primer test se parsea en orden de columnas y en el segundo se hace por filas.

Conocen quizás la manera de ejecutar todas las líneas en Jupyter y no una por una?
Y adicional, existe alguna opción para que se ejecute automáticamente un cuaderno de Jupyter sin necesidad de abrirlo?

Live Demo
# Create the data frame.
emp.data <- data.frame(
   emp_id = c (1:5), 
   emp_name = c("Rick","Dan","Michelle","Ryan","Gary"),
   salary = c(623.3,515.2,611.0,729.0,843.25), 
   
   start_date = as.Date(c("2012-01-01", "2013-09-23", "2014-11-15", "2014-05-11",
      "2015-03-27")),
   stringsAsFactors = FALSE
)
# Print the data frame.			
print(emp.data) 

con esto ya no necesitamos Excel ni nada parecido esto es mejor.

Excelente y entendido

Hice un DataFrame pasandole los valores como variables y me manda NaN, cuando realmente es lo mismo que si lo asiganara directo. ¿Que hice mal?

pandas tiene una sintaxis similar a un diccionario que es muy intuitiva para aquellos familiarizados con Python pero no con pandas. Cada nombre de columna se trata como una clave y los valores de fila se devuelven como el valor. El constructor de objetos DataFrame también acepta un diccionario como una forma de crear un DataFrame.

import pandas as pd
cliente = pd.DataFrame({
     "nombre": ["Bob", "Mary", "Mita"],
     "cuenta": [123846, 123972, 347209],
     "balance": [123, 3972, 7209],
})

print(cliente["nombre"])

0 Bob
1 Mary
2 Mita
Name: nombre, dtype: object


Se va poniendo interesante el tema…

Super Clase,

Un dataframe es simplemente una tabla donde las filas y las columnas tienen etiqueta.

muy buena clase.

Muy buena clase y las observaciones de los compañeros sobre el orden de las columnas en las listas.

interesante!

<#dataframes


frame_test = pd.DataFrame({1999:[5,77,89],
                           2000:[12,32,00],
                           2009:[90,22,55]})
frame_test

frame_test = pd.DataFrame([[5,77,89],
                           [12,32,00],
                           [90,22,55]], columns=[2007,2008,2009])
frame_test>

excelente clase

El keywords para colocar las filas es index ,como ejemplo:

columns= [2000,2001,2002], index = ['a','b','c'])```

Para asignarle nombres a las filas:

index=['texto 1', 'texto 2', 'texto 3']

frame_test2 = pd.DataFrame([[74, 52, 32],
                           [85, 64, 54],
                           [45, 67, 33]], 
                           columns=[1999, 2000, 20001],
                           index=['texto 1', 'texto 2', 'texto 3'])

frame_test2

Excelente Clase

frame_test2 = pd.DataFrame([[74, 38, 39], 
                           [34, 32, 32], 
                           [23, 39, 23]], columns=[1999, 2000, 2001])
frame_test2```

saludos aqui mi codigo…

frame_test = pd.DataFrame({1999: [74, 38, 39], 
                           2000: [34, 32, 32], 
                           2001: [23, 39, 23]})
frame_test```

excelente tema.

⚠️CUIDADO⚠️
.
Hay tener precaución al momento de utilizar el método opcional Columns, ya que toma arma la columna utilizando el mismo índice de cada lista. Contrario a como lo hacemos al nombrar la llave en donde los valores de la columna corresponden a una sola lista.
.
En los ejemplos de la clase se puede ver:
Frame_Test:

frame_test = pd.DataFrame({1999: [74, 38, 39],
                           2000: [34, 32, 32],
                           2001: [23, 39, 23]})
frame_test

Resultado:


.
Frame_Test2:

frame_test2 = pd.DataFrame([[74, 38, 39],
                            [34, 32, 32],
                            [23, 39, 23]], columns=[1999, 2000, 2001])
frame_test2
frame_test3 = pd.DataFrame([[74,38,28],
                            [14,25,97],
                            [74,4,9]], 
                            columns=[1999, 2000, 2001], 
                            index=['Francisco', 'Isabel', 'Juanda'])
frame_test3
	1999	2000	2001
Francisco	74	38	28
Isabel	14	25	97
Juanda	74	4	9