Pandas DataFrame – Menggunakan Method copy()

Method copy() berguna untuk mengcopy series atau dataframe menjadi object yang terpisah dari object sebelumnya.

Mari kita load library dan data yang digunakan.

import pandas as pd

df = pd.read_csv("jamesbond.csv", index_col="Film")
df.sort_index(inplace=True)

Jika tidak menggunakan method copy(), series/dataframe yang baru masih terhubung dengan object sebelumnya. Setiap perubahan pada series/dataframe yang baru, akan terjadi pada dataframe original. Untuk lebih jelas, lihat contoh berikut:

Kita buat series dengan data director.

directors = df["Director"]
directors.head()
Film
A View to a Kill              John Glen
Casino Royale           Martin Campbell
Casino Royale                Ken Hughes
Diamonds Are Forever       Guy Hamilton
Die Another Day            Lee Tamahori
Name: Director, dtype: object

Lalu kita lakukan perubahan pada series directors, dengan mengganti “John Glen” menjadi kata “testing”.

directors["A View to a Kill"] = "Testing"

Python akan memberikan warning bahwa data yang diubah adalah bagian dari dataframe original.

/usr/local/lib/python3.7/dist-packages/ipykernel_launcher.py:1: SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame

See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
  """Entry point for launching an IPython kernel.

Dan, bila kita periksa pada dataframe original, data director untuk film “A View to a Kill” ikut berubah.

Jika Anda ingin object series baru tidak berhubungan dengan object sebelumnya, harus menggunakan method copy().
directors2 = df["Director"].copy()

Jika Anda lakukan perubahan pada series director2, tidak akan mengubah data pada dataframe original, dan Python juga tidak akan menampilkan warning message.

directors2.head()
Film
A View to a Kill                Testing
Casino Royale           Martin Campbell
Casino Royale                Ken Hughes
Diamonds Are Forever       Guy Hamilton
Die Another Day            Lee Tamahori
Name: Director, dtype: object
df.head()

Dengan berakhirnya modul ini, tutorial Pandas Dasar untuk Data Scientist sudah selesai. Pada tutorial berikutnya akan dibahas Pandas Advanced untuk Data Scientist.

Semoga bermanfaat.

Sharing is caring:

Leave a Comment