Python es un excelente lenguaje para realizar análisis de datos, principalmente debido al fantástico ecosistema de paquetes de Python centrados en datos. Pandas es uno de esos paquetes y facilita mucho la importación y el análisis de datos.
Hay muchas formas de copiar DataFrame en pandas. La primera forma es una forma simple de asignar un objeto de marco de datos a una variable, pero esto tiene algunos inconvenientes.
Sintaxis: DataFrame.copydeep=True
Cuando deep=True (predeterminado), se creará un nuevo objeto con una copia de los datos e índices del objeto que llama. Las modificaciones a los datos o índices de la copia no se reflejarán en el objeto original (ver notas a continuación).
Cuando deep=False, se creará un nuevo objeto sin copiar los datos o el índice del objeto que llama (solo se copian las referencias a los datos y al índice). Cualquier cambio en los datos del original se reflejará en la copia superficial (y viceversa).
Paso 1) Primero hagamos un marco de datos ficticio, que usaremos para nuestra ilustración
Paso 2) Asigne ese objeto de marco de datos a una variable
Paso 3) Realice cambios en el marco de datos original para ver si hay alguna diferencia en la variable copiada
Python3
import pandas as pd #Create Series s = pd.Series([3,4,5],['earth','mars','jupiter']) k = pd.Series([1,2,3],['earth','mars','jupiter']) #Create DataFrame df from two series df = pd.DataFrame({'mass':s,'diameter':k}) df
Producción:
Ahora, asignemos el marco de datos df a una variable y realicemos cambios:
Python3
#Assign df to variable_copy variable_copy = df print(variable_copy) #Update the value of mass of earth in original dataframe df['mass']['earth']=8 print(variable_copy)
Producción:
Aquí, podemos ver que si cambiamos los valores en el marco de datos original, los datos en la variable copiada también cambian. Para superar esto, usamos DataFrame.copy()
Veamos esto, con ejemplos cuando deep=True(default ):
Python3
res = df.copy(deep=True) print(res)
Producción: