Yinelenenleri kaldırmak, aynı şeyi birden fazla kez saymak istemediğiniz için doğru sayımlara ulaşmak açısından temel bir beceridir. Python'da bu işlem, Pandas modülündeki drop_duplicates adlı yöntem kullanılarak yapılabilir.
Bunu birkaç örnek yardımıyla nasıl kullanacağımızı anlayalım.
Yinelenen İsimleri Kaldırma
Diyelim ki veteriner ziyaretlerini içeren bir veri çerçeveniz (dataframe) var ve veteriner kliniği, kliniklerini ziyaret eden her ırktan kaç köpek olduğunu bilmek istiyor. Ancak veri kümenizde veterineri birden fazla kez ziyaret eden Max ve Stella gibi köpekler var. Bu nedenle, ırk sütunundaki her bir ırkın sayısını doğrudan sayamazsınız.
date name breed weight_kg
02018-09-02 Bella Labrador 24.8712019-06-07 Max Labrador 28.3522018-01-17 Stella Chihuahua 1.5132019-10-19 Lucy Chow Chow 24.07..............712018-01-20 Stella Chihuahua 2.83722019-06-07 Max Chow Chow 24.01732018-08-20 Lucy Chow Chow 24.40742019-04-22 Max Labrador 28.54Altyapı:
Bunu başarmak için, daha önce listelenmiş bir köpek adını içeren satırları kaldırırsınız; başka bir deyişle, veri kümesinden her bir isimden birer köpek çıkarırsınız.
Bunu drop_duplicates yöntemiyle yaparsınız. Bu yöntem subset adlı bir argüman alır; bu, yinelenenleri bulmak istediğimiz sütundur — bu durumda tüm benzersiz isimleri istiyoruz.
date name breed weight_kg
02018-09-02 Bella Labrador 24.8712019-06-07 Max Chow Chow 24.0122019-03-19 Charlie Poodle 24.9532018-01-17 Stella Chihuahua 1.5142019-10-19 Lucy Chow Chow 24.0772019-03-30 Cooper Schnauzer 16.91102019-01-04 Bernie St. Bernard 74.98Altyapı:
Bu durumda, yinelenenleri kaldırırken yalnızca name sütununu dikkate almamız yeterli değildir. Max ve Max farklı ırklar olduğundan, veri kümesinde daha önce listelenmiş olan isim ve ırk çiftlerinin yer aldığı satırları kaldırabiliriz.
date name breed weight_kg
02018-09-02 Bella Labrador 24.8712019-03-13 Max Chow Chow 24.1322019-03-19 Charlie Poodle 24.9532018-01-17 Stella Chihuahua 1.5142019-10-19 Lucy Chow Chow 24.0762019-06-07 Max Labrador 28.3572019-03-30 Cooper Schnauzer 16.91102019-01-04 Bernie St. Bernard 74.98Altyapı:
Yinelenenleri birden fazla sütuna göre temellendirmek için, sütun adlarının bir listesini subset argümanına geçebiliriz; bu örnekte isim ve ırk.
Artık her iki Max de dahil edilmiştir.
Etkileşimli Örnek
Bu alıştırmada, sales içindeki benzersiz değerleri kullanarak bazı yeni DataFrame'ler oluşturacaksınız. sales hazırdır ve pandaspd olarak içe aktarılmıştır.
Şu adımları uygulayacaksınız:
Önce, sales içindeki yinelenen store ve type çiftlerine sahip satırları kaldıracak, store_types olarak kaydedecek ve ilk satırları yazdıracaksınız.
Ardından, sales içindeki yinelenen store ve department çiftlerine sahip satırları kaldıracak, store_depts olarak kaydedecek ve ilk satırları yazdıracaksınız.
Tatil haftası olan satırları alt kümeye alacak ve yinelenen dates değerlerini kaldırarak holiday_dates olarak kaydedeceksiniz.
Son olarak, holiday_dates DataFrame'inin date sütununu seçecek ve holiday_dates DataFrame'ini yazdıracaksınız.
# Drop duplicate store/type combinations
store_types = sales.drop_duplicates(subset=["store","type"])print(store_types.head())# Drop duplicate store/department combinations
store_depts = sales.drop_duplicates(subset=["store","department"])print(store_depts.head())# Subset the rows that are holiday weeks and drop duplicate dates
holiday_dates = sales[sales["is_holiday"]].drop_duplicates(subset="date")# Print date col of holiday_datesprint(holiday_dates["date"])Altyapı:
Yukarıdaki kodu çalıştırdığımızda aşağıdaki sonuç üretilir:
store type department date weekly_sales is_holiday temperature_c fuel_price_usd_per_l unemployment
01A12010-02-0524924.50 False 5.7280.6798.1069012A12010-02-0535034.06 False 4.5500.6798.32417984A12010-02-0538724.42 False 6.5330.6868.62326996A12010-02-0525619.00 False 4.6830.6797.259359310B12010-02-0540212.84 False 12.4110.7829.765
store type department date weekly_sales is_holiday temperature_c fuel_price_usd_per_l unemployment
01A12010-02-0524924.50 False 5.7280.6798.106121A22010-02-0550605.27 False 5.7280.6798.106241A32010-02-0513740.12 False 5.7280.6798.106361A42010-02-0539954.04 False 5.7280.6798.106481A52010-02-0532229.38 False 5.7280.6798.1064982010-09-106912011-11-2523152010-02-1267352012-09-0768102010-12-3168152012-02-1068202011-09-09Name: date,dtype: datetime64[ns]Altyapı:
Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Yinelenenleri kaldırmak, aynı şeyi birden fazla kez saymak istemediğiniz için doğru sayımlara ulaşmak açısından temel bir beceridir. Python'da bu işlem, Pandas modülündeki
drop_duplicatesadlı yöntem kullanılarak yapılabilir.Bunu birkaç örnek yardımıyla nasıl kullanacağımızı anlayalım.
Yinelenen İsimleri Kaldırma
Diyelim ki veteriner ziyaretlerini içeren bir veri çerçeveniz (dataframe) var ve veteriner kliniği, kliniklerini ziyaret eden her ırktan kaç köpek olduğunu bilmek istiyor. Ancak veri kümenizde veterineri birden fazla kez ziyaret eden Max ve Stella gibi köpekler var. Bu nedenle, ırk sütunundaki her bir ırkın sayısını doğrudan sayamazsınız.
Bunu başarmak için, daha önce listelenmiş bir köpek adını içeren satırları kaldırırsınız; başka bir deyişle, veri kümesinden her bir isimden birer köpek çıkarırsınız.
Bunu
drop_duplicatesyöntemiyle yaparsınız. Bu yöntemsubsetadlı bir argüman alır; bu, yinelenenleri bulmak istediğimiz sütundur — bu durumda tüm benzersiz isimleri istiyoruz.Peki, aynı ada sahip köpekler varsa ne olur?
Yinelenen Çiftleri Kaldırma
Bu durumda, yinelenenleri kaldırırken yalnızca
namesütununu dikkate almamız yeterli değildir.MaxveMaxfarklı ırklar olduğundan, veri kümesinde daha önce listelenmiş olan isim ve ırk çiftlerinin yer aldığı satırları kaldırabiliriz.Yinelenenleri birden fazla sütuna göre temellendirmek için, sütun adlarının bir listesini subset argümanına geçebiliriz; bu örnekte isim ve ırk.
Artık her iki Max de dahil edilmiştir.
Etkileşimli Örnek
Bu alıştırmada,
salesiçindeki benzersiz değerleri kullanarak bazı yeni DataFrame'ler oluşturacaksınız.saleshazırdır vepandaspdolarak içe aktarılmıştır.Şu adımları uygulayacaksınız:
salesiçindeki yinelenenstorevetypeçiftlerine sahip satırları kaldıracak,store_typesolarak kaydedecek ve ilk satırları yazdıracaksınız.salesiçindeki yinelenenstorevedepartmentçiftlerine sahip satırları kaldıracak,store_deptsolarak kaydedecek ve ilk satırları yazdıracaksınız.datesdeğerlerini kaldırarakholiday_datesolarak kaydedeceksiniz.holiday_datesDataFrame'inindatesütununu seçecek veholiday_datesDataFrame'ini yazdıracaksınız.Yukarıdaki kodu çalıştırdığımızda aşağıdaki sonuç üretilir:
Kendiniz deneyin.
Veri sayımı ve toplamaya ilişkin daha fazla bilgi edinmek için kursumuzdaki şu videoyu izleyin: pandas ile Veri Manipülasyonu.
Bu içerik, Maggie Matsui ve Richie Cotton'ın hazırladığı DataCamp’in pandas ile Veri Manipülasyonu kursundan alınmıştır.