HOWTO · Pandas
Pandas Copiar DataFrame
Este tutorial irá introduzir como podemos fazer cópia de um objecto DataFrame usando o método DataFrame.copy() e iremos explorar o uso do método DataFrame.copy().
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.