Sebenarnya rencana yang sepatutnya keluar hari ini adalah mengenai postgres materialized view tetapi ada satu isu yang saya perlu selesaikan dahulu: Untuk mendapatkan senarai ID
unik dari dataframe.
Ceritanya begini. Pipeline saya perlu memproses sebuah fail data yang mengandungi senarai ID berserta maklumat lain. Contohnya seperti di bawah
import pandas as pd
# Create a sample DataFrame
data = {
'ID': [1001, 1002, 1002, 1004, 1005],
'NAMA': ['Hasbullah', 'Malik', 'Malik', 'Ramona', 'Albert'],
'BELANJA': [10, 888, 999, 40, 50]
}
df = pd.DataFrame(data)
# Display the DataFrame
print("Original DataFrame:")
print(df)
Dataframe tersebut adalah
Original DataFrame:
ID NAMA BELANJA
0 1001 Hasbullah 10
1 1002 Malik 888
2 1002 Malik 999
3 1004 Ramona 40
4 1005 Albert 50
Data-data (ID dan Nama) ini perlu dimasukkan dalam sebuah table yang menggunakan ID sebagai primary key. Jadi jika ID yang berulang table pipeline akan gagal kerana contraint dari table tersebut.
Jadi untuk menyelesaikan masalah ini, kod ini digunakan
# Get unique rows based on column 'A'
unique_df = df.drop_duplicates(subset=['ID'])
# Display the unique rows
print("\nUnique rows based on column 'ID':")
print(unique_df[['ID','NAMA']])
Hasilnya adalah:
Unique rows based on column 'ID':
ID NAMA
0 1001 Hasbullah
1 1002 Malik
3 1004 Ramona
4 1005 Albert
Saya menggunakn python function drop_duplicates
untuk membuang data yang berulang. subset=['ID']
digunakan untuk mendapakan syarat untuk menentukan apakah column yang patut digunakan. Dalam sample kes ini ID
adalah key yang digunakan.
Kod Penuh
import pandas as pd
# Create a sample DataFrame
data = {
'ID': [1001, 1002, 1002, 1004, 1005],
'NAMA': ['Hasbullah', 'Malik', 'Malik', 'Ramona', 'Albert'],
'BELANJA': [10, 888, 999, 40, 50]
}
df = pd.DataFrame(data)
# Display the DataFrame
print("Original DataFrame:")
print(df)
# Get unique rows based on column 'A'
unique_df = df.drop_duplicates(subset=['ID'])
# Display the unique rows
print("\nUnique rows based on column 'ID':")
print(unique_df[['ID','NAMA']])
Selamat mencuba!!!
Rujukan:
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.drop_duplicates.html