Data Analysis

إتقان فرز إطارات بيانات Pandas: دليل شامل

Spread the love

توفر إطارات بيانات Pandas أدوات قوية لمعالجة البيانات، والفرز عملية أساسية. تستعرض هذه المقالة كيفية فرز إطار بيانات بكفاءة حسب عمود واحد، مع التركيز على طريقة sort_values() الأساسية وحججها الرئيسية: ascending و na_position.

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

التحكم في ترتيب الفرز باستخدام ascending

توفر طريقة sort_values() تحكمًا مباشرًا في اتجاه الفرز. تحدد حجة ascending، التي تكون قيمتها الافتراضية True (ترتيب تصاعدي)، ما إذا كان سيتم الفرز بترتيب تصاعدي أو تنازلي.


import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
        'Age': [25, 30, 22, 28],
        'Score': [85, 92, 78, 88]}

df = pd.DataFrame(data)

# فرز تصاعدي حسب 'Age'
df_ascending = df.sort_values(by='Age')
print("تصاعدي:n", df_ascending)

# فرز تنازلي حسب 'Age'
df_descending = df.sort_values(by='Age', ascending=False)
print("n تنازلي:n", df_descending)

معالجة القيم المفقودة باستخدام na_position

عند التعامل مع مجموعات البيانات التي تحتوي على قيم مفقودة (NaN)، تتحكم حجة na_position في وضع هذه القيم ضمن العمود المفرز. تقبل قيمتين:

  • 'first' (افتراضي): توضع قيم NaN في بداية العمود المفرز.
  • 'last': توضع قيم NaN في نهاية العمود المفرز.

import pandas as pd
import numpy as np

data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
        'Age': [25, 30, np.nan, 28, 22],
        'Score': [85, 92, 78, 88, 95]}

df = pd.DataFrame(data)

# قيم NaN أولاً
df_na_first = df.sort_values(by='Age', na_position='first')
print("NaN أولاً:n", df_na_first)

# قيم NaN أخيراً
df_na_last = df.sort_values(by='Age', na_position='last')
print("nNaN أخيراً:n", df_na_last)

الفرز حسب أعمدة متعددة

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


# فرز حسب العمر (تصاعدي) ثم حسب النتيجة (تنازلي)
df_multi = df.sort_values(by=['Age', 'Score'], ascending=[True, False])
print("nفرز متعدد الأعمدة:n", df_multi)

الفرز في المكان

بشكل افتراضي، تُعيد sort_values() إطار بيانات مُفرز *جديد*. لتعديل إطار البيانات مباشرة، عيّن حجة inplace إلى True. لاحظ أن هذا يُعدّل إطار البيانات الأصلي، لذا كن حذرًا.


df.sort_values(by='Age', inplace=True)
print("nفرز في المكان:n", df)

من خلال فهم واستخدام هذه الحجج، يمكنك فرز إطارات بيانات Pandas بكفاءة ودقة، مما يُحسّن سير عمل تحليل البيانات لديك.

اترك تعليقاً

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