تحديد صفوف DataFrame بناءً على قيم الأعمدة في Python

تحديد صفوف DataFrame بناءً على قيم الأعمدة في Python
Python

استخدام Pandas لتصفية DataFrames حسب قيم الأعمدة

عند العمل مع البيانات في بايثون، توفر مكتبة Pandas أدوات قوية لمعالجة البيانات وتحليلها. إحدى المهام الشائعة هي تحديد الصفوف من DataFrame بناءً على القيم الموجودة في عمود معين. تشبه هذه العملية استعلام SQL: SELECT * FROM table WHERE column_name = some_value.

في هذه المقالة، سوف نستكشف كيفية تحقيق ذلك في الباندا باستخدام طرق مختلفة. سواء كنت تقوم بالتصفية حسب قيمة واحدة أو معايير متعددة، فإن Pandas توفر طرقًا بديهية وفعالة للتعامل مع مثل هذه العمليات. دعونا نتعمق في التفاصيل.

يأمر وصف
pd.DataFrame() ينشئ كائن DataFrame من قاموس أو بنيات بيانات أخرى.
df[condition] يقوم بتصفية صفوف DataFrame بناءً على شرط ما، مما يؤدي إلى إرجاع فقط تلك التي تفي بالمعايير.
print() إخراج الرسالة المحددة أو DataFrame إلى وحدة التحكم.
df['column'] == value ينشئ سلسلة منطقية تستخدم لتصفية الصفوف حيث يتطابق العمود مع القيمة المحددة.
df['column'] >df['column'] > value ينشئ سلسلة منطقية تستخدم لتصفية الصفوف التي تكون فيها قيم الأعمدة أكبر من القيمة المحددة.
# Comment يستخدم لإضافة شروحات أو ملاحظات داخل الكود، والتي لا يتم تنفيذها كجزء من البرنامج النصي.

تنفيذ اختيار صف DataFrame في الباندا

في البرامج النصية المقدمة، تتمثل المهمة الرئيسية في تصفية الصفوف من DataFrame بناءً على قيم أعمدة محددة، وهو متطلب شائع في تحليل البيانات. يبدأ البرنامج النصي الأول باستيراد مكتبة Pandas باستخدام import pandas as pd. يعد هذا أمرًا ضروريًا لأن Pandas هي مكتبة قوية لمعالجة البيانات في Python. بعد ذلك، نقوم بإنشاء نموذج DataFrame باستخدام pd.DataFrame() مع قاموس يحتوي على بيانات للأسماء والأعمار والمدن. تتيح لنا هذه البنية تصور البيانات الجدولية ومعالجتها بسهولة. الجزء الحاسم من البرنامج النصي هو المكان الذي نقوم فيه بتصفية الصفوف باستخدام df[df['city'] == 'New York']. يحدد هذا الأمر كافة الصفوف حيث تكون قيمة عمود المدينة هي "نيويورك". يتم تخزين النتيجة في المتغير ny_rows، والتي تتم طباعتها بعد ذلك لعرض DataFrame الذي تمت تصفيته.

يتبع البرنامج النصي الثاني بنية مشابهة ولكنه يركز على تصفية الصفوف بناءً على شرط رقمي. بعد استيراد Pandas وإنشاء DataFrame مع أعمدة المنتج والسعر والكمية، يستخدم البرنامج النصي df[df['price'] > 150] لتصفية الصفوف التي يكون السعر فيها أكبر من 150. ينتج هذا الأمر مجموعة فرعية من DataFrame الأصلي تحتوي فقط على الصفوف التي تفي بالشرط المحدد. يتم تخزين النتيجة في expensive_products وطباعتها للتحقق. يُظهر كلا النصين قوة وبساطة Pandas في معالجة البيانات. باستخدام الفهرسة المنطقية، وهي طريقة نمرر فيها سلسلة من القيم الصحيحة/الخاطئة لتصفية البيانات، يمكننا تحديد مجموعات فرعية من البيانات بكفاءة بناءً على شروط مختلفة، مما يجعلها أداة لا تقدر بثمن لمحللي البيانات والعلماء.

تصفية الصفوف في DataFrame بناءً على قيم الأعمدة

بايثون - استخدام الباندا لعمليات DataFrame

import pandas as pd
# Create a sample DataFrame
data = {
    'name': ['Alice', 'Bob', 'Charlie', 'David', 'Edward'],
    'age': [24, 27, 22, 32, 29],
    'city': ['New York', 'Los Angeles', 'New York', 'Chicago', 'Los Angeles']
}
df = pd.DataFrame(data)

# Select rows where city is New York
ny_rows = df[df['city'] == 'New York']
print(ny_rows)

# Output:
#       name  age      city
# 0    Alice   24  New York
# 2  Charlie   22  New York

الاستعلام عن صفوف DataFrame بناءً على قيم الأعمدة

بايثون - التصفية المتقدمة مع الباندا

import pandas as pd

# Create a sample DataFrame
data = {
    'product': ['A', 'B', 'C', 'D'],
    'price': [100, 150, 200, 250],
    'quantity': [30, 50, 20, 40]
}
df = pd.DataFrame(data)

# Select rows where price is greater than 150
expensive_products = df[df['price'] > 150]
print(expensive_products)

# Output:
#   product  price  quantity
# 2       C    200        20
# 3       D    250        40

التقنيات المتقدمة لاختيار صفوف DataFrame

بالإضافة إلى التصفية الأساسية باستخدام الفهرسة المنطقية، يقدم Pandas تقنيات أكثر تقدمًا لاختيار الصفوف بناءً على قيم الأعمدة. إحدى هذه الطرق هي query() وظيفة، والتي تسمح لك باستخدام بناء جملة يشبه SQL لتصفية صفوف DataFrame. على سبيل المثال، يمكنك استخدام df.query('age > 25 and city == "New York"') لتحديد الصفوف التي يكون فيها العمر أكبر من 25 عامًا والمدينة هي نيويورك. يمكن لهذه الطريقة أن تجعل التعليمات البرمجية الخاصة بك أكثر قابلية للقراءة، خاصة في الحالات المعقدة. بالإضافة إلى ذلك، يوفر Pandas loc[] و iloc[] الوصول لاختيار صف أكثر دقة. ال loc[] يعتمد الولوج على التصنيف، مما يعني أنه يمكنك تصفية الصفوف حسب تسمياتها أو مصفوفة منطقية. في المقابل، iloc[] يعتمد الموصل على موضع العدد الصحيح، مما يسمح لك بتصفية الصفوف حسب مواضع الفهرس الخاصة بها.

ميزة أخرى قوية في Pandas هي القدرة على تصفية صفوف DataFrame باستخدام isin() طريقة. تكون هذه الطريقة مفيدة عندما تحتاج إلى تصفية الصفوف بناءً على قائمة القيم. على سبيل المثال، df[df['city'].isin(['New York', 'Los Angeles'])] تحديد الصفوف التي تكون فيها قيمة عمود المدينة إما نيويورك أو لوس أنجلوس. علاوة على ذلك، يمكنك ربط عدة شروط باستخدام & و | المشغلين لإنشاء مرشحات أكثر تعقيدا. على سبيل المثال، df[(df['age'] > 25) & (df['city'] == 'New York')] يقوم بتصفية الصفوف التي يكون فيها العمر أكبر من 25 عامًا والمدينة هي نيويورك. توفر هذه التقنيات المتقدمة إطارًا قويًا لتصفية البيانات، مما يجعل Pandas أداة متعددة الاستخدامات لتحليل البيانات ومعالجتها.

أسئلة شائعة حول اختيار صفوف DataFrame في Pandas

  1. كيف أقوم بتصفية الصفوف في DataFrame بناءً على قيم أعمدة متعددة؟
  2. يمكنك استخدام الفهرسة المنطقية مع شروط متعددة مجتمعة باستخدام & و |. على سبيل المثال: df[(df['age'] > 25) & (df['city'] == 'New York')].
  3. ماهو الفرق بين loc[] و iloc[]؟
  4. loc[] يعتمد على التسمية، بينما iloc[] يعتمد على الموضع الصحيح. يستخدم loc[] للتصفية حسب التسميات و iloc[] للتصفية حسب مواضع الفهرس.
  5. كيف يمكنني استخدام query() وظيفة لتصفية صفوف DataFrame؟
  6. ال query() تتيح لك الوظيفة استخدام بناء جملة يشبه SQL. على سبيل المثال: df.query('age > 25 and city == "New York"').
  7. هل يمكنني تصفية الصفوف بناءً على قائمة القيم؟
  8. نعم يمكنك استخدام isin() طريقة. على سبيل المثال: df[df['city'].isin(['New York', 'Los Angeles'])].
  9. ما هي أفضل طريقة لتصفية الصفوف بناءً على مطابقة السلسلة؟
  10. يمكنك استخدام ال str.contains() طريقة. على سبيل المثال: df[df['city'].str.contains('New')].
  11. كيف أحدد الصفوف التي تكون قيم الأعمدة فيها مفقودة؟
  12. يمكنك استخدام ال isna() طريقة. على سبيل المثال: df[df['age'].isna()].
  13. كيف يمكنني تصفية الصفوف باستخدام وظيفة مخصصة؟
  14. يمكنك استخدام ال apply() الطريقة مع وظيفة لامدا. على سبيل المثال: df[df.apply(lambda row: row['age'] > 25, axis=1)].
  15. هل يمكنني تصفية الصفوف بناءً على قيم الفهرس؟
  16. نعم يمكنك استخدام index.isin() طريقة. على سبيل المثال: df[df.index.isin([1, 3, 5])].

الوجبات السريعة الرئيسية لاختيار صف DataFrame

يعد تحديد الصفوف من DataFrame بناءً على قيم الأعمدة مهارة أساسية في تحليل البيانات باستخدام Pandas. باستخدام الفهرسة المنطقية، loc[], iloc[], query()، و isin() تسمح الأساليب بتصفية البيانات بكفاءة. إن إتقان هذه التقنيات يعزز قدرتك على التعامل مع مجموعات البيانات وتحليلها بشكل فعال.