• 0

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

لدي البيانات التالية على شكل 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  تحذف الصفوف التي تتشابه جميع قيمها، لكن هنا أريد تحديد أعمدة بعينها، كيف يمكنني فعل هذا؟

2 اشخاص أعجبوا بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 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
"""

 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


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

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن