اذهب إلى المحتوى
  • 0

إزالة كل الصفوف المتكررة في أعمدة معينة في pandas

Mohamed Elnemr

السؤال

لدي البيانات التالية على شكل dataframe 

    A   B   C
0   foo 0   A
1   foo 1   A
2   foo 1   B
3   bar 1   A

أريد إزالة الصفوف التي تتشابة فيها قيم عمودين، على سبيل المثال أريد إزالة الصفوف التي تتشابه فيها قيم العمود A والعمود C لذا في المثال السابق سنقوم بحذف الصفين 0 و 1.

أعرف أن الدالة drop_duplicates  تحذف الصفوف التي تتشابه جميع قيمها، لكن هنا أريد تحديد أعمدة بعينها، كيف يمكنني فعل هذا؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

يمكنك إستخدام drop_duplicates كذلك في تحديد أعمدة بعينها لحذفها وليس كل الأعمدة، ويمكنك فعل ذلك كما في الكود التالي:

import pandas as pd
df = pd.DataFrame({"A":["foo", "foo", "foo", "bar"], "B":[0,1,1,1], "C":["A","A","B","A"]})
df.drop_duplicates(subset=['A', 'C'], keep=False)

ويكون الناتج:

    A   B   C

0   foo 1   B
1   bar 1   A

هنا قد حذف بالفعل الأعمدة المتشابهة في الصفين A و C

تم التعديل في بواسطة Ahmed Sharshar
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

إضافة إلى الإجابة التي قدمها أحمد، يمكنك استخدام groupby:

import pandas as pd
df = pd.DataFrame({"A":["foo", "foo", "foo", "bar"], "B":[0,1,1,1], "C":["A","A","B","A"]})
df.groupby(["A", "C"]).filter(lambda df:df.shape[0] == 1)
"""
A 	B 	C
2 	foo 	1 	B
3 	bar 	1 	A
"""

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...