Pandas Copy

Kode Lima Detik

import pandas as pd

df = pd.read_csv('https://raw.githubusercontent.com/aansubarkah/basangdata_pandas/master/pandas-beginner/penjualan.csv')

df_copy = df.copy()

Latar Belakang

Pada tulisan sebelumnya kita telah memfilter data. Umumnya langkah selanjutnya adalah membuat variabel baru berdasarkan hasil filter tersebut. Pada variabel baru itu kita melakukan eksplorasi lebih lanjut seperti memfilter lagi, atau bahkan mengubah data.

Jika integritas data merupakan perhatian utama maka praktek di atas sangat tidak disarankan. Karena jika menggunakan metode di atas, sebenarnya kita masih menggunakan data yang sama, bukan salinan. Sehingga perubahan apapun pada data, baik pada data sumber maupun variabel baru, akan berdampak pada kedua variabel. Dan tentunya jika kita membuat variabel baru berdasarkan variabel yang ada, data akan berubah mengikuti perubahan pada salah satu variabel.

Mengurangi sakit kepala karena integritas data yang buruk, lebih bijak jika variabel baru merupakan hasil copy dari variabel asal. Dengan metode itu, kita akan mendapatkan data yang independen satu sama lain sehingga perilaku data pada variabel yang sedang kita tangani lebih bisa kita prediksi.

Kode

Pandas menyediakan fungsi copy untuk menyalin dataframe menjadi dataframe baru yang tidak bergantung satu sama lain. Kita akan mengeksplorasi fungsi ini.

Load library dan data

import pandas as pd

df = pd.read_csv('https://raw.githubusercontent.com/aansubarkah/basangdata_pandas/master/pandas-beginner/penjualan.csv')

Buat variabel baru tanpa fungsi copy

df_tanpacopy = df

Tiap perubahan di kedua variabel akan merubah data

df.iloc[0, 0] = 'Andi Burhanuddin Sr.'

Kita merubah data pada variabel df, baris pertama, kolom pertama, dari semula bernama “Andi Burhanuddin” menjadi “Andi Burhanuddin Sr.“. Terlihat pada kedua variabel data tersebut berubah.

Hal yang sama juga berlaku jika kita merubah variabel df_tanpacopy, misal kita ubah nama tersebut menjadi “Bapak Andi Burhanuddin Jr“.

df_tanpacopy.iloc[0, 0] = 'Bapak Andi Burhanuddin'

Variabel baru dengan fungsi copy

Sekarang kita buat variabel baru menggunakan fungsi copy.

df_copy = df.copy()

Perubahan pada masing-masing variabel tidak merubah variabel lainnya

df.iloc[0, 0] = 'Andi Burhanuddin Jr.'

Terlihat perubahan pada variabel df, dari semula “Bapak Andi Burhanuddin” menjadi “Andi Burhanuddin Jr.“, tidak merubah data yang sama pada variabel df_copy. Sebaliknya demikian perubahan pada variabel df_copy tidak berefek pada variabel df.

df_copy.iloc[0, 0] = 'Ibu Andi Burhanuddin'

Referensi

Cover Image by Pexels from Pixabay

Leave a Reply

Your email address will not be published. Required fields are marked *