डुप्लिकेट्स हटाना सटीक काउंट्स पाने के लिए एक जरूरी कौशल है, क्योंकि आप अक्सर एक ही चीज़ को कई बार गिनना नहीं चाहते। Python में, यह Pandas मॉड्यूल का उपयोग करके किया जा सकता है, जिसमें drop_duplicates नामक एक मेथड होता है।
कुछ उदाहरणों की मदद से समझते हैं कि इसे कैसे इस्तेमाल करें।
डुप्लिकेट नाम हटाना
मान लीजिए आपके पास एक डेटाफ़्रेम है जिसमें vet विज़िट्स हैं, और vet के ऑफिस को जानना है कि हर नस्ल के कितने कुत्ते उनके ऑफिस आए हैं। हालांकि, आपके डेटा सेट में Max और Stella जैसे कुत्ते हैं जो एक से अधिक बार vet के पास गए हैं। इसलिए, आप केवल breed कॉलम में हर नस्ल की संख्या नहीं गिन सकते।
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.54संचालित द्वारा
इसे हासिल करने के लिए, आप उन पंक्तियों को हटाएंगे जिनमें ऐसा कुत्ते का नाम है जो पहले ही आ चुका है, या दूसरे शब्दों में, आप हर नाम का कुत्ता डेटा सेट से एक बार ही निकालेंगे।
आप यह drop_duplicates मेथड से करेंगे। यह subset नाम का आर्ग्युमेंट लेता है, जो वह कॉलम है जिसके आधार पर हम डुप्लिकेट ढूंढना चाहते हैं — इस मामले में, हमें सभी यूनिक नाम चाहिए।
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.98संचालित द्वारा
ऐसी स्थिति में, डुप्लिकेट हटाते समय हमें सिर्फ name से आगे बढ़कर सोचना होगा। चूंकि Max और Max अलग नस्लों के हैं, हम नाम और नस्ल के उन युग्मों वाली पंक्तियाँ हटा सकते हैं जो डेटा सेट में पहले आ चुकी हैं।
unique_dogs = vet_visits.drop_duplicates(subset=["name","breed"])print(unique_dogs)संचालित द्वारा
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.98संचालित द्वारा
एक से अधिक कॉलम के आधार पर डुप्लिकेट हटाने के लिए, हम subset आर्ग्युमेंट में कॉलम नामों की सूची पास कर सकते हैं — यहाँ name और breed।
अब दोनों Max शामिल हो गए हैं।
इंटरैक्टिव उदाहरण
इस अभ्यास में, आप sales के यूनिक मानों का उपयोग करके कुछ नए DataFrames बनाएंगे। sales उपलब्ध है, और pandas को pd नाम से इम्पोर्ट किया गया है।
आप ये कदम उठाएँगे:
पहले, आप sales की वे पंक्तियाँ हटाएँगे जिनमें store और type के डुप्लिकेट युग्म हैं, इसे store_types के रूप में सहेजेंगे और इसकी head प्रिंट करेंगे।
फिर, आप sales की वे पंक्तियाँ हटाएँगे जिनमें store और department के डुप्लिकेट युग्म हैं, इसे store_depts के रूप में सहेजेंगे और इसकी head प्रिंट करेंगे।
जो पंक्तियाँ holiday weeks हैं, उन्हें subset करें, और डुप्लिकेट dates हटाकर holiday_dates के रूप में सहेजें।
अंत में, holiday_dates के date कॉलम का चयन करें, और holiday_dates डेटाफ़्रेम को प्रिंट करें।
# 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"])संचालित द्वारा
जब हम ऊपर का कोड चलाते हैं, तो यह निम्नलिखित परिणाम देता है:
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]संचालित द्वारा
डुप्लिकेट्स हटाना सटीक काउंट्स पाने के लिए एक जरूरी कौशल है, क्योंकि आप अक्सर एक ही चीज़ को कई बार गिनना नहीं चाहते। Python में, यह Pandas मॉड्यूल का उपयोग करके किया जा सकता है, जिसमें
drop_duplicatesनामक एक मेथड होता है।कुछ उदाहरणों की मदद से समझते हैं कि इसे कैसे इस्तेमाल करें।
डुप्लिकेट नाम हटाना
मान लीजिए आपके पास एक डेटाफ़्रेम है जिसमें vet विज़िट्स हैं, और vet के ऑफिस को जानना है कि हर नस्ल के कितने कुत्ते उनके ऑफिस आए हैं। हालांकि, आपके डेटा सेट में Max और Stella जैसे कुत्ते हैं जो एक से अधिक बार vet के पास गए हैं। इसलिए, आप केवल breed कॉलम में हर नस्ल की संख्या नहीं गिन सकते।
इसे हासिल करने के लिए, आप उन पंक्तियों को हटाएंगे जिनमें ऐसा कुत्ते का नाम है जो पहले ही आ चुका है, या दूसरे शब्दों में, आप हर नाम का कुत्ता डेटा सेट से एक बार ही निकालेंगे।
आप यह
drop_duplicatesमेथड से करेंगे। यहsubsetनाम का आर्ग्युमेंट लेता है, जो वह कॉलम है जिसके आधार पर हम डुप्लिकेट ढूंढना चाहते हैं — इस मामले में, हमें सभी यूनिक नाम चाहिए।लेकिन, अगर एक ही नाम वाले कुत्ते हों तो?
डुप्लिकेट युग्म हटाना
ऐसी स्थिति में, डुप्लिकेट हटाते समय हमें सिर्फ
nameसे आगे बढ़कर सोचना होगा। चूंकिMaxऔरMaxअलग नस्लों के हैं, हम नाम और नस्ल के उन युग्मों वाली पंक्तियाँ हटा सकते हैं जो डेटा सेट में पहले आ चुकी हैं।एक से अधिक कॉलम के आधार पर डुप्लिकेट हटाने के लिए, हम subset आर्ग्युमेंट में कॉलम नामों की सूची पास कर सकते हैं — यहाँ name और breed।
अब दोनों Max शामिल हो गए हैं।
इंटरैक्टिव उदाहरण
इस अभ्यास में, आप
salesके यूनिक मानों का उपयोग करके कुछ नए DataFrames बनाएंगे।salesउपलब्ध है, औरpandasकोpdनाम से इम्पोर्ट किया गया है।आप ये कदम उठाएँगे:
salesकी वे पंक्तियाँ हटाएँगे जिनमेंstoreऔरtypeके डुप्लिकेट युग्म हैं, इसेstore_typesके रूप में सहेजेंगे और इसकी head प्रिंट करेंगे।salesकी वे पंक्तियाँ हटाएँगे जिनमेंstoreऔरdepartmentके डुप्लिकेट युग्म हैं, इसेstore_deptsके रूप में सहेजेंगे और इसकी head प्रिंट करेंगे।datesहटाकरholiday_datesके रूप में सहेजें।holiday_datesकेdateकॉलम का चयन करें, औरholiday_datesडेटाफ़्रेम को प्रिंट करें।जब हम ऊपर का कोड चलाते हैं, तो यह निम्नलिखित परिणाम देता है:
खुद आज़माएँ।
काउंटिंग और डेटा को एग्रीगेट करने के बारे में अधिक जानने के लिए, हमारे कोर्स Data Manipulation with pandas का यह वीडियो देखें।
यह सामग्री DataCamp के Data Manipulation with pandas कोर्स से ली गई है, जिसके लेखक Maggie Matsui और Richie Cotton हैं।