O método copy()
(pandas.DataFrame.copy(), pandas.Series.copy()) do pandas é usado para criar uma cópia de um objeto pandas (Dataframe, serie). As variáveis também são usadas para gerar a cópia de um objeto, mas as variáveis são apenas um ponteiro para um objeto e qualquer alteração em novos dados também alterará os dados anteriores.
Os exemplos a seguir mostram a diferença entre copiar por meio de variáveis e com o método DataFrame/Series.copy()
.
Exemplo #1: Copiando por meio de variáveis
Neste exemplo, uma amostra da Series Pandas é feita e copiada em uma nova variável. Depois disso, algumas alterações são feitas nos novos dados e comparadas com os dados antigos.
# Importando o pacote pandas import pandas as pd # Criando uma Series data = pd.Series(['a', 'b', 'c', 'd']) # Criando uma copia da Series? new = data # Atribuindo novo valor new[1]='Valor alterado' # imprimindo a serie e a sua cópia print(new) print(data)
Conforme mostrado na saída abaixo, as alterações feitas nos novos dados também são refletidas nos dados antigos, pois a nova variável era apenas um ponteiro para a antiga.
Saída:
0 a 1 Valor alterado 2 c 3 d dtype: object 0 a 1 Valor alterado 2 c 3 d dtype: object
Exemplo #2: Usando o método pandas.Series.copy()
Neste exemplo, o método Series.copy()
é usado para copiar os dados e algumas alterações são feitas nos novos dados. As alterações são então comparadas com dados antigos.
# Importando o pacote pandas import pandas as pd # Criando uma Series data = pd.Series(['a', 'b', 'c', 'd']) # Criando uma copia da Series new = data.copy() # Atribuindo novo valor new[1]='Valor alterado' # imprimindo a serie e a sua cópia print(new) print(data)
Conforme mostrado abaixo, as mudanças nos novos dados são independentes e não mudaram nada nos antigos.
Saída:
0 a 1 Valor alterado 2 c 3 d dtype: object 0 a 1 b 2 c 3 d dtype: object
Artigo escrito por Kartikaybhutani e traduzido por Acervolima de Python | Difference between Pandas.copy() and copying through variables.
0 comentários:
Postar um comentário