توفر إطارات بيانات Pandas أدوات قوية لمعالجة البيانات، والفرز عملية أساسية. تستعرض هذه المقالة كيفية فرز إطار بيانات بكفاءة حسب عمود واحد، مع التركيز على طريقة sort_values()
الأساسية وحججها الرئيسية: ascending
و na_position
.
جدول المحتويات
- التحكم في ترتيب الفرز باستخدام
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 بكفاءة ودقة، مما يُحسّن سير عمل تحليل البيانات لديك.