Pandas Tutorials

استخراج وفرز القيم الفريدة بكفاءة في جداول بيانات Pandas

Spread the love

Pandas هي مكتبة قوية في بايثون لمعالجة البيانات وتحليلها. وتتضمن إحدى المهام الشائعة استخراج القيم الفريدة من عمود DataFrame ثم فرزها. وتستعرض هذه المقالة طريقتين فعالتين لتحقيق ذلك.

محتويات الجدول

استخراج القيم الفريدة باستخدام طريقة unique()

توفر طريقة unique() طريقة موجزة للحصول على القيم الفريدة من سلسلة Pandas (عمود واحد). وهي تُرجع مصفوفة NumPy تحتوي فقط على العناصر الفريدة، مع الحفاظ على ترتيبها الأصلي.


import pandas as pd

data = {'col1': ['A', 'B', 'A', 'C', 'B', 'D'],
        'col2': [1, 2, 1, 3, 2, 4]}
df = pd.DataFrame(data)

unique_values = df['col1'].unique()
print(unique_values)  # الإخراج: ['A' 'B' 'C' 'D']

يقوم هذا الكود بإنشاء DataFrame نموذجي ثم يستخدم unique() على العمود ‘col1’. والإخراج هو مصفوفة NumPy تُظهر القيم الفريدة بترتيب ظهورها الأول.

استخراج القيم الفريدة باستخدام طريقة drop_duplicates()

توفر طريقة drop_duplicates() مرونة أكبر، خاصة عند التعامل مع أعمدة متعددة. وبينما تُستخدم في المقام الأول لإزالة الصفوف المكررة، إلا أنها تستطيع استخراج القيم الفريدة من عمود واحد بكفاءة.


import pandas as pd

data = {'col1': ['A', 'B', 'A', 'C', 'B', 'D'],
        'col2': [1, 2, 1, 3, 2, 4]}
df = pd.DataFrame(data)

unique_values = df['col1'].drop_duplicates().values
print(unique_values)  # الإخراج: ['A' 'B' 'C' 'D']

يُطبق هذا المثال drop_duplicates() مباشرة على سلسلة ‘col1’. وتُحوّل سمة .values النتيجة إلى مصفوفة NumPy. ويعكس ترتيب القيم الفريدة ظهورها الأول في DataFrame.

فرز القيم الفريدة

ترجع كلتا الطريقتين أعلاه قيمًا فريدة، ولكن ليس بالضرورة بترتيب مُرتب. لفرزها، استخدم دالة sort() من NumPy أو طريقة sort_values() من Pandas.


import pandas as pd
import numpy as np

data = {'col1': ['A', 'B', 'A', 'C', 'B', 'D'],
        'col2': [1, 2, 1, 3, 2, 4]}
df = pd.DataFrame(data)

# باستخدام unique() و sort()
unique_values = np.sort(df['col1'].unique())
print(unique_values)  # الإخراج: ['A' 'B' 'C' 'D']

# باستخدام drop_duplicates() و sort_values()
unique_values = df['col1'].drop_duplicates().sort_values().values
print(unique_values)  # الإخراج: ['A' 'B' 'C' 'D']

يُظهر هذا الفرز باستخدام كلا النهجين. تعمل np.sort() على مصفوفة NumPy من unique()، بينما تُستخدم sort_values() على سلسلة Pandas من drop_duplicates(). وكلاهما يُنتج مصفوفة مُرتبة. للحصول على ترتيب تنازلي باستخدام sort_values()، استخدم ascending=False.

باختصار، كل من unique() و drop_duplicates() تستخرج القيم الفريدة بكفاءة. ويعتمد الخيار الأمثل على احتياجاتك المحددة وما إذا كنت تعمل مع أعمدة واحدة أو متعددة. تذكر فرز النتائج باستخدام الطريقة المناسبة للترتيب المطلوب.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *