Pandas Flashcards

1
Q

Cuál de los siguientes no es un tipo de datos en Pandas?
* Int16
* Char
* Bool
* Timedelta

A

Char

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Los tipos de datos que no puedan ser inferidos son mostrados como undefined. Luego, pueden cambiarse a mano con astype.

True or false

A

False

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Cada columna del dataframe puede ser tratada como una serie.
True or false

A

True

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Si queremos saber cuanto ocupa un dataframe, podemos utilizar:
* len()
* size
* shape
* memory_usage()

A

memory_usage()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Si queremos obtener todos los elementos de la 2da columna de un dataframe podemos usar iloc[:,2]
True or false

A

True

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Cuál de los siguientes elementos no forma parte de la estructura de un dataframe en Pandas?
* Column Index
* Range Index
* Index
* Row Index

A

Row Index

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

En Pandas, luego de hacer un groupby, es posible aplicar múltiples operaciones a distintos elementos utilizando
* agg
* apply
* run
* Transform

A

agg

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Luego de aplicar múltiples operaciones luego de un groupby, obtenemos una estructura que cuenta con un multiIndex
True or false

A

True

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Siempre tengo que aplicar fillna antes de aplicar pd.concat
True or false

A

False

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

El objeto que devuelve .loc se puede usar para
* Leer datos
* Escribir datos
* Ambas
* Ninguna de las dos

A

Ambas

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Si tengo un DataFrame df y genero df2 haciendo concat de df consigo mismo
* df2 va a tener mas cantidad de filas que df
* df2 va a tener menos cantidad de filas que df
* df2 va a tener igual cantidad de filas que df
* No es posible saberlo

A

df2 va a tener mas cantidad de filas que df

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Se puede aplicar df.pivot unicamente
* Si la columna de valores no repite datos
* Si la columna de valores tiene datos numéricos
* Si la columna de valores no contiene valores NaN
* Todas las anteriores son incorrectas

A

Todas las anteriores son incorrectas

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

En el caso general, usar apply para sumar dos columnas col_1 y col_2

  • Es mas eficiente que hacer df.col_1 + df.col_2
  • Es menos eficiente que hacer df.col_1 + df.col_2
  • apply no se puede utilizar para sumar columnas
  • Me devuelve un nuevo DataFrame
A

Es menos eficiente que hacer df.col_1 + df.col_2

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Si tengo un DataFrame con unicamente enteros y asigno una cadena a una posicion
* La fila cambia su dtype a object
* La fila cambia su dtype a string
* La columna cambia su dtype a object
* La columna cambia su dtype a string

A

La columna cambia su dtype a object

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Al hacerle describe a un df vemos que mean de col_1 == col_2 y que std de col_1 < col_2
* col_1.max() > col_2.max()
* col_1.max() = col_2.max()
* col_1.max() < col_2.max()
* No es posible saberlo

A

No es posible saberlo

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Si se que df.pivot(“A”,”B”,”C”) y df.pivot_table(“A”,”B”,”C”) devuelven exactamente el mismo df (valores y dtypes)
* No hay valores NaN en ninguna de las dos tablas pivot
* La unica forma es si los valores de C son iguales a su promedio
* La unica forma es si cada par ‘A’,’B’ tiene asignado un unico valor de ‘C’
* Se le hizo previamente df.fillna(0,inplace=True)

A

La unica forma es si cada par ‘A’,’B’ tiene asignado un unico valor de ‘C’

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Si tengo un DataFrame unicamente de valores float y asigno una cadena a una celda arbitraria
* La fila cambia su dtype a object
* La columna cambia su dtype a object
* La fila cambia su dtype a string
* La columna cambia su dtype a string

A

La columna cambia su dtype a object

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

El método ‘map’
* Me deja transformar una serie en un diccionario (hashmap)
* Me deja mapear los valores de un grupo a una nueva columna
* Le aplica una funcion lambda a un DataFrame
* Ninguna es correcta

A

Ninguna es correcta

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

DataFrame no tiene un metodo map porque
* Un DataFrame no tiene un tipo de dato definido
* DataFrame tiene apply
* Es equilvalente a un for x in df
* Mentira, si tiene

A

Un DataFrame no tiene un tipo de dato definido

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Siempre tengo que aplicar antes fillna para poder usar concat
True or false

A

False

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Si hago df2=pd.concat([df,df])
* df2 va a tener mas columnas que df
* df2 va a tener las mismas columnas que df
* df2 va a tener menos columnas que df
* Depende de df, no es posible saberlo

A

df2 va a tener las mismas columnas que df

22
Q

Solo puedo aplicar df.pivot si la columna de valores
* No tiene datos repetidos
* Solo tiene datos numericos
* No tiene valores NaN
* Ninguna de las anteriores es correcta

A

Ninguna de las anteriores es correcta

23
Q

En el caso general, si quiero multiplicar 2 columnas haciendo df.col_a * df.col_b
* Es mas eficiente que hacerlo con apply
* Es menos eficiente que hacerlo con apply
* Solo puedo hacerlo asi, apply no puedo usarlo para sumar
* Solo puedo usar apply, esto no funciona

A

Es mas eficiente que hacerlo con apply

24
Q

Para el caso donde df.pivot(“A”,”B”,”C”) devuelve lo mismo que df.pivot_table(“A”,”B”,”C”)
* Solo es posible si se hizo previamente un df.fillna para que no haya NaNs
* Solo es posible si los valores de “C” son iguales a su promedio
* Solo es posible si cada par (“A”,”B”) tiene asignado un unico valor de “C”
* Solo es posible si df es el dataframe nulo

A

Solo es posible si cada par (“A”,”B”) tiene asignado un unico valor de “C”

25
Q

Si tenemos t = df.groupby(“A”).transform(“sum”), para cualquier df
* df.columns == t.columns
* len(df) > len(t)
* df == t
* Ninguna es correcta

A

Ninguna es correcta

26
Q

df.memory_usage() devuelve la memoria (en bytes) utilizada por
* Las columnas
* El indice
* Las columnas y el indice
* Ninguna de las anteriores

A

Las columnas y el indice

27
Q

Los tipos de datos siempre se pierden al guardar un DataFrame a un archivo
True or false

A

False

28
Q

Que tipo de merge tengo que utilizar si quiero que el resultado tenga todos los elementos de df1 y df2
* pd.merge(df1,df2,how=”full”)
* pd.merge(df1,df2,how=”inner”)
* pd.merge(df1,df2,how=”outer”)
* pd.merge(df1,df2,how=”left”)

A

pd.merge(df1,df2,how=”outer”)

29
Q

Si tengo un DataFrame sin ningun multi índice, al aplicar stack voy a obtener
* Una serie
* Un dataframe
* Un error
* Depende del caso, no es posible saberlo

A

Una serie

30
Q

df.stack mueve el nivel mas bajo del indice de
* Columna
* Fila
* Depende de que parametro se le pase es fila o columna
* Ninguna es correcta porque siempre es el nivel mas alto

A

Columna

31
Q

df2 = pf.merge(df,df)
* df2 va a estar vacio
* df2 va a tener mas elementos que df1
* df2 va a tener los mismo elementos que df1
* df2 va a tener las mismas columnas que df pero sin dato

A

df2 va a tener los mismo elementos que df1

32
Q

Teniendo 2000 elementos, pero solo 1999 son valores no repetidos. Cambiando a ‘category’
* La columna va a ocupar menos memoria
* La columna va a ocupar mas memoria
* La columna va a ocupar lo mismo
* Depende del tipo de dato original

A

La columna va a ocupar mas memoria

33
Q

Puedo usar el resultado de groupby directamente sin aplicarle ninguna función
* Si
* No
* Depende de los datos del dataframe
* Depende de las columnas elegidas

A

No

34
Q

Group by puede agrupar por más de una columna a la vez
* Si
* Si, pero no es una operación que tenga sentido
* No

A

Si

35
Q

Agregate puede aplicar más de una función a la vez
* Si
* Si, pero solo una función por columna
* No
* No, pero si se pudiera, no tendría sentido

A

Si

36
Q

Al aplicar concat a dos dataframes que no comparten columnas
* La operación falla
* La operación no falla, pero devuelve un dataframe vacio
* Devuelve la suma de todos los valores por cada fila
* Se agregan las filas y se agrega NaN a los valores de las filas sin datos

A

Se agregan las filas y se agrega NaN a los valores de las filas sin datos

37
Q

df.agg(“sum”)
* Solo funciona si df no es el resultado de un groupby
* Solo funciona si df es una serie
* Devuelve la suma de todos los valores por cada columna
* Devuelve la suma de todos los valores por cada fila

A

Devuelve la suma de todos los valores por cada columna

38
Q

Al aplicarle reset_index a un dataframe (DF) con un índice por fila de 3 niveles
* Falla porque no se puede aplicar sobre multi-index
* Da un DF con una nueva columna con los valores de los índices concatenados
* Da un DF con 3 nuevas columnas, cada una con el valor de un nivel diferente
* Da un DF con una columna, con el valor del nivel más bajo

A

Da un DF con 3 nuevas columnas, cada una con el valor de un nivel diferente

39
Q

Si sobreescribo ‘columns’ de un dataframe con multiindice de columnas
* Se elimina el multi índice
* Se sobreescribe el nivel más bajo del multiindice
* Se sobreescribe el nivel más alto del multiindice
* Ninguna de las anteriores

A

Se elimina el multi índice

40
Q

df.group_by([“col_1”,”col_2”]).sum() vs df.group_by([“col_2”,”col_1”]).sum()
* Genera el mismo dataframe
* Genera los mismos resultados, con índices invertidos
* Al aplicarle reset_index, los resultados tienen distinta cantidad de datos
* Ninguna de las anteriores

A

Genera los mismos resultados, con índices invertidos

41
Q

Para poder aplicar merge
* Los dataframes deben tener el mismo número de columnas
* Se debe indicar las columnas según la cual se unirán los datos
* Los dataframes deben compartir índice

A

Se debe indicar las columnas según la cual se unirán los datos

42
Q

Cual de las siguientes operaciones es más eficiente para obtener los 10 productos con mayores ventas
* productos.sort_values(“ventas”).head(10)
* productos.largest(“ventas”).head(10)
* productos.nlargest(10,“ventas”)
* productos.sort_values(“ventas”,reverse=True).tail(10)

A

productos.nlargest(10,“ventas”)

43
Q

Si deseo cambiar el tipo a la columna “años” a flotante
* df.años.dtype = “float”
* df.años = float(df.años)
* df.años = df.años.dtype(“float”)
* df.años = df.años.astype(“float”)

A

Si deseo cambiar el tipo a la columna “años” a flotante

44
Q

df.size
* Devuelve el numero de filas del df
* Devuelve el numero de columnas del df
* Devuelve el numero de elementos del df
* Devuelve el uso de memoria del df

A

Devuelve el numero de elementos del df

45
Q

La ventaja de usar pivot_table por sobre pivot es
* Que devuelve una copia
* Que permite manejar valores de índices duplicados
* Que elimina NaN automáticamente
* Ninguna

A

Que permite manejar valores de índices duplicados

46
Q
  • El resultado de df.groupby(“columna”).transform(“mean”)
  • len(resultado) < len(df.columna)
  • len(resultado) == len(df.columna)
  • len(resultado) > len (df.columna)
  • No es posible saberlo
A

len(resultado) == len(df.columna)

47
Q

Para un df con multiindice por fila y columna, df.unstack()
* Mueve el nivel más bajo de fila al más bajo de columna
* Mueve el nivel más bajo de fila al más alto de columna
* Mueve el nivel más alto de fila al más bajo de columna
* Mueve el nivel más alto de fila al más alto de columna

A

Mueve el nivel más bajo de fila al más bajo de columna

48
Q

df.groupby(“columna”).filter(fn) devuelve
* Un objeto PandasFilter
* Una serie que puedo usar como filtro
* Un dataframe con las filas que pasen el filtro
* Nada (filtra in place)

A

Un dataframe con las filas que pasen el filtro

49
Q

apply vs agg
* apply está optimizado para operaciones comunes, agg no
* agg está optimizado para operaciones comunes, apply no
* apply permite aplicar funciones propias, agg no
* agg permite aplicar funciones propias, apply no
*

A

agg está optimizado para operaciones comunes, apply no

50
Q

Para un df sin ningun multiindice, df.stack()
* Devuelve una serie
* Devuelve un dataframe de una única columna
* Falla porque solo funciona sobre multiindices
* No falla pero devuelve el mismo dataframe

A

Devuelve una serie

51
Q

Si A tiene 100K filas con solo 3 tipos de valores y B=A.astype(“category”)
* A.memory_usage() < B.memory_usage()
* A.memory_usage() > B.memory_usage()
* Ninguna porque depende de cuales sean los tipos
* A.size != B.size

A

A.memory_usage() > B.memory_usage()

52
Q

Para cualquier df, si aplico correctamente pivot para obtener df2
* df2.size <= df.size
* df2.columns == df.columns
* df2.shape == df.shape
* Ninguna de las anteriores

A

Ninguna de las anteriores