मैं प्रोग्रामिंग में नया हूं इसलिए मुझे अज्ञानता के लिए क्षमा करें।

मेरे पास निम्न डेटाफ़्रेम है:

          ID      Name    
0       AJ-6      Mark    
1       AJ-6      Mark     
2    AJ-6-FR    Judith    
3    AJ-6-FR    Judith  
4    AJ-6-FR Christian    
..       ...       ...   
299   TV-552     Marie   
300   TV-552      Ruth     
309  ZS-V-21      John     
310  ZS-V-21      John     
311  ZS-V-21      John    

मेरा इरादा उन पंक्तियों को छोड़ना है जहां आईडी दोहराई जाती है (यानी पंक्तियां 0 - 1 या 309-311) और वही नाम पंक्ति में है।

मैंने कई चीजों की कोशिश की जैसे कि स्थानांतरित स्तंभों के साथ पुनरावृत्तियों और स्थितियों का उपयोग करना, लेकिन मुझे डर है कि पुनरावृत्ति करते समय कई पंक्तियों को छोड़ना संभव नहीं है।

मैं केवल दो कॉलम दिखा रहा हूं जहां स्थितियां मिल सकती हैं, लेकिन और भी हो सकती हैं (यानी यदि कॉलम ['आयु']> = 20: ड्रॉप पंक्तियां)।

आपकी मदद के लिए धन्यवाद सर और मैडम।

0
Albert 13 मार्च 2020, 18:01

2 जवाब

तुम कोशिश कर सकते हो

df = df.loc[(df['ID']!=df['shiftdown'])&(df['ID']!=df['shiftup'])]

यह केवल पंक्तियों की जांच करता है और रखता है यदि आईडी मान शिफ्टडाउन और शिफ्टअप से अलग है।

यदि इसके बजाय आप किसी विशिष्ट कॉलम के आधार पर समान मानों वाली पंक्तियों को छोड़ना चाहते हैं तो आप df.drop_values ​​​​(by=[col_name]) का उपयोग कर सकते हैं, यह प्रश्न से स्पष्ट नहीं है।

0
Edoardo Guerriero 13 मार्च 2020, 18:26
प्रिय एडोआर्डो। आपके इनपुट के लिए बहुत - बहुत धन्यवाद। मैंने आपकी समस्या के समाधान को लागू करने की कोशिश की लेकिन मुझे एहसास हुआ कि मेरी समस्या मेरी अपेक्षा से थोड़ी अधिक जटिल है। मैंने आखिरकार इसे सुधारने का फैसला किया। असुविधा के लिए खेद है। मुझे आशा है कि आप मेरी मदद करने तक कर सकते हैं।
 – 
Albert
17 मार्च 2020, 12:24
मुझे लगता है कि यदि आपके पास लागू करने के लिए कई शर्तें हैं जो वास्तव में एक-दूसरे से अलग हैं, तो कोड की एक पंक्ति में सब कुछ संघनित करने के बजाय अधिक 'सफाई' चरणों को करना आसान हो सकता है। इस बारे में सोचें कि प्रत्येक शर्त को क्या प्राथमिकता दी जाए (क्या आप उम्र के आधार पर पहले फ़िल्टर करना चाहते हैं या पहले डुप्लिकेट की जांच करना चाहते हैं?) इसके अलावा, नीचे दिए गए लिन k पर एक नज़र डालें, इसमें कोड उदाहरण हैं जिन्हें आप अपने कोड के लिए दोहरा सकते हैं। यह जाने बिना कि आप क्या आउटपुट कर रहे हैं, ऐसा दिखना चाहिए कि इससे अधिक मदद करना कठिन है pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html
 – 
Edoardo Guerriero
17 मार्च 2020, 15:47

आप इसे आजमा सकते हैं (यदि df आपका डेटाफ़्रेम है):

df.drop_duplicates(subset = ['ID', 'Name'], inplace = True) 
0
Arne 17 मार्च 2020, 14:53