Pandas Copiar DataFrame

  1. Sintaxe do método pandas.DataFrame.copy()
  2. Copy Pandas DataFrame Utilizando o pandas.DataFrame.copy() Método
  3. Copiar Pandas DataFrame atribuindo o DataFrame a uma variável

Este tutorial introduzirá como podemos copiar um objecto DataFrame utilizando o método DataFrame.copy().

import pandas as pd

items_df = pd.DataFrame({
    'Id': [302, 504, 708],
    'Cost': ["300", "400", "350"],

})

print(items_df)

Resultado:

    Id Cost
0  302  300
1  504  400
2  708  350 

Vamos utilizar o exemplo acima para demonstrar a utilização do método DataFrame.copy() em Pandas.

Sintaxe do método pandas.DataFrame.copy()

DataFrame.copy(deep=True)

Devolve uma cópia do DataFrame. O deep é por defeito True, o que significa que qualquer alteração feita na cópia não será reflectida no DataFrame original. Contudo, se definirmos deep=False, quaisquer alterações feitas na cópia também serão reflectidas no DataFrame original.

Copy Pandas DataFrame Utilizando o pandas.DataFrame.copy() Método

import pandas as pd
import numpy as np

items_df = pd.DataFrame({
    'Id': [302, 504, 708],
    'Cost': ["300", "400", "350"],

})

deep_copy = items_df.copy()

print("Original DataFrame before changing value in copy DataFrame:")
print(items_df, "\n")

print("Copy DataFrame before changing value in copy DataFrame:")
print(deep_copy, "\n")

deep_copy.loc[0, "Cost"] = np.nan

print("Original DataFrame after changing value in copy DataFrame:")
print(items_df, "\n")

print("Copy DataFrame after changing value in copy DataFrame:")
print(deep_copy, "\n")

Resultado:

Original DataFrame before changing value in copy DataFrame:
    Id Cost
0  302  300
1  504  400
2  708  350 

Copy DataFrame before changing value in copy DataFrame:
    Id Cost
0  302  300
1  504  400
2  708  350 

Original DataFrame after changing value in copy DataFrame:
    Id Cost
0  302  300
1  504  400
2  708  350 

Copy DataFrame after changing value in copy DataFrame:
    Id Cost
0  302  NaN
1  504  400
2  708  350 

Cria uma cópia da DataFrame items_df como deep_copy. Se alterarmos qualquer valor da cópia deep_copy, não há alteração na DataFrame original items_df. Definimos o valor da coluna Cost da 1ª fila para NaN em deep_copy mas o items_df mantém-se inalterado.

Copiar Pandas DataFrame atribuindo o DataFrame a uma variável

import pandas as pd
import numpy as np

items_df = pd.DataFrame({
    'Id': [302, 504, 708],
    'Cost': ["300", "400", "350"],

})

copy_cost = items_df["Cost"]

print("Cost column of Original DataFrame before changing value in copy DataFrame:")
print(items_df, "\n")

print("Cost column of Copied DataFrame before changing value in copy DataFrame:")
print(copy_cost, "\n")

copy_cost[0] = np.nan

print("Cost column of Original DataFrame after changing value in copy DataFrame:")
print(copy_cost, "\n")

print("Cost column of Copied DataFrame after changing value in copy DataFrame:")
print(copy_cost, "\n")

Resultado:

Cost column of Original DataFrame before changing value in copy DataFrame:
    Id Cost
0  302  300
1  504  400
2  708  350 

Cost column of Copied DataFrame before changing value in copy DataFrame:
0    300
1    400
2    350
Name: Cost, dtype: object 

Cost column of Original DataFrame after changing value in copy DataFrame:
0    NaN
1    400
2    350
Name: Cost, dtype: object 

Cost column of Copied DataFrame after changing value in copy DataFrame:
0    NaN
1    400
2    350
Name: Cost, dtype: object 

Cria uma cópia da coluna Cost da DataFrame items_df como copy_cost.

Artigo relacionado - Pandas DataFrame

  • Como adicionar uma fileira à Pandas DataFrame
  • Como Obter o Agregado de Pandas Group-By e Sum