Pandas Copiar DataFrame

Suraj Joshi 30 janeiro 2023
  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
Pandas Copiar DataFrame

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.

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Artigo relacionado - Pandas DataFrame