Una funcionalidad extra de pandas que puede ser útil es pd.update().
Donde básicamente si tengo df1 y df2, al hacer pdf1.update(df2) me actualiza o cambia los valores de df1 tomando los de df2 , pero sólo de las columnas que tienen en común.
Comenzando con pandas
¿Qué es pandas?
Series e Indexación y selección de datos
De paneles de datos al DataFrame
Indexado y manejo de archivos CSV
Conexión con bases de datos tipo SQL
Ventajas y desventajas de los formatos de importar y guardado
Funcionalidades básicas y esenciales de pandas
Formatos de lectura para cargar y guardar DataFrames
Tipos de Variables que componen un data frame
Estructuras de dataframes en detalle
Borrar filas, columnas y copiar información
Aplicando pandas
Funciones matemáticas
Funciones más complejas y lambdas
Múltiples índices
Cómo trabajar con variables tipo texto en Pandas
Concatenación de DataFrames: concat y append
Merge de DataFrames
¿Cómo lidiar con datos faltantes en tus DataFrames?
Group by
Cómo lidiar con datos duplicados en Pandas
Aggregation y groupby
Group By: extraer valor con variables categóricas
Tablas dinámicas con Pivot Table
Series de Tiempo
Series de Tiempo: variables nulas
Visualización y graficación de datos
Contenido extra
Iniciando una rutina típica de manejo de datos
Preprocesamiento de datos: terminando de preparar y limpiar los datasets
Análisis de datos
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Aportes 33
Preguntas 5
Una funcionalidad extra de pandas que puede ser útil es pd.update().
Donde básicamente si tengo df1 y df2, al hacer pdf1.update(df2) me actualiza o cambia los valores de df1 tomando los de df2 , pero sólo de las columnas que tienen en común.
Otra forma de hacer un append mas directo y más personalizado, es con el metodo insert()
, este metodo toma 3 parametros:
De esta forma:
# la posicion (1) indica que será la segunda fila (empieza a contar desde cero)
# luego sigue el nombre de la nueva columna
# luego los valores de la nueva columna
>>> df_2r.insert(1, 'columna_nueva', [45, 10, 67])
Aunque no lo recomiendo usar por que modifica directamente el dataFrame, en cambio recomiendo usar este otro metodo ya que devuelve una copia sin modifcar el original y es el assign()
que funciona de manera similar.
El nombre de la columna se pasa como parametro al metodo, de esta forma:
# la nueva columna se llamará "col_nueva" con valores [1, 45, 67
# se agregará al final, no modifica el df original
df_2r.assign(col_nueva=[1, 45, 67])
recuerden que al concatenar las series s1 y s2, es posible usar luego de axis, el parametro
inplace=True si quiero indicar los cambios se hagan a mi serie original.
soy el unico que esta haciendo todos los ejercisios y haciendo apuntes?, quien conmigo?
La función randn() sigue una distribución normal estandar y aunque tiene mayor probailidad de tomar valores entre -1 y 1, también toma otros valores. Podría decirse que el límite podría ser entre -3 y 3
Si queremos que la append ocurra en el sentido de las columnas lo que podemos hacer es
df1.reset_index(drop=True).T.append(df2.reset_index(drop=True).T).T
Concatenar it’s my pasion
David de los mejores Instructores
Tambien es posible recontar el index con: ignore_index=True
pd.concat([s1,s2],ignore_index=True)
df1.T.append(df2.T).T == df1.concat([df1,df2], axis=1)
True
Forma rápida de obtener lista con elementos ‘a’, ‘b’, ‘c’, ‘d’…
list(‘abcde’)
(Output)[‘a’, ‘b’, ‘c’, ‘d’, ‘e’]
Funciona también con listas de elementos que son cadenas de textos. Para ello usamos el método del tipo string ‘.split’ :
‘España Colombia Argentina México Uruguay’.split()
(Ouput)[‘España’, ‘Colombia’, ‘Argentina’, ‘México’, ‘Uruguay’]
El resumen de las clase
Concatenar en Pandas por filas pd.concat( [s1,s2] ) shape(10,1)
Gracias
Concatenar por columnas en numpy numpy.concatenate(array1,array2, axis = 1) shape(2,10)
conctenar solo donde coinciden los data frames
Concatenar en Pandas
Excelente. Muy útil y necesarios para el análisis.
Si se está usando la librería de pandas se emplea:
pd.options.display.float_format = {":.2f}.format
Si se está trabajando con la librería de numpy se emplea:
np.set_printoptions(precision=2)
En ambos comandos el número (para este caso 2) indica la cantidad de decimales que se desea. Si no se quieren decimales se puede colocar cero.
Que porquería de curso, el peor hasta ahora
Un alternativa a las transpuestas puede ser la función merge de pandas 😄.
Concatenar anidado con las dos funciones concat y append, en su forma mas simple
y=pd.concat([df1,df2]) z =df1.append(df2)
yy =pd.concat([df1,z]) zz = df1.append(z)
el resultado es el mismo, la diferencia esta en las lineas de código aplicadas y los requerimientos del análisis a realizar
Muy bueno el curso, sin embargo, el codigo parece no esta actualizado y que bote tanto error es una cagada… la mayoria se solucionan buscando en internet pero quema mas tiempo y genera desgaste…
a ver si actualizan un poco…
al indicar la serie:
s1 = pd.Series(x1[0],index =['a','b','c','d','e'])
me arroja el error
ValueError: invalid format specifier.
cambio la disposición de los argumentos, pero no sirve, se supone que Series admite entero, cadena, flotante, objetos de python, etc. ademas de poderle pasar listas, tuplas o diccionario.
alguna sujerencia?
Concatenar dos dataframes sin respetar sus índices
Concatenar por filas en numpy numpy.concatenate(array1,array2) shape(4,5)
Concatenar en Pandas por columnas pd.concat( [s1,s2], axis=1 ) shape(5,2)
Juntar dos series sin considerar el indice
concatenar dataframes
Append
Para **unir 2 o mas dataframes **podemos usar las siguientes funciones de Pandas:
Vamos a aprender a unir 2 dataframes con concat y append.
Interesante
Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.