الباندا: كيفية تحديد الخطوط التي لا تبدأ بسلسلة
يمكنك استخدام بناء الجملة الأساسي التالي لتحديد الصفوف التي لا تبدأ بسلسلة محددة في pandas DataFrame:
df[~df. my_column . str . startswith ((' this ', ' that '))]
تحدد هذه الصيغة المحددة جميع الصفوف في DataFrame حيث لا يبدأ العمود المسمى my_column بالسلسلة this أو السلسلة that .
يوضح المثال التالي كيفية استخدام بناء الجملة هذا عمليًا.
مثال: حدد الأسطر التي لا تبدأ بسلسلة في Pandas
لنفترض أن لدينا DataFrame الباندا التالي الذي يحتوي على معلومات المبيعات لمختلف المتاجر:
import pandas as pd #createDataFrame df = pd. DataFrame ({' store ': ['Upper East', 'Upper West', 'Lower East', 'West', 'CTR'], ' sales ': [150, 224, 250, 198, 177]}) #view DataFrame print (df) blind sales 0 Upper East 150 1 Upper West 224 2 Lower East 250 3 West 198 4 CTR 177
يمكننا استخدام بناء الجملة التالي لتحديد جميع الصفوف في DataFrame التي لا تبدأ بالسلاسل “العلوية” أو “السفلى” في عمود المتجر :
#select all rows where store does not start with 'Upper' or 'Lower'
df[~df. blind . str . startswith ((' Upper ',' Lower '))]
blind sales
3 West 198
4 CTR 177
لاحظ أن الصفوف الوحيدة التي تم إرجاعها هي تلك التي لا يبدأ فيها عمود المتجر بـ “العلوي” أو “السفلي”.
إذا أردت، يمكنك أيضًا تحديد صف السلسلة خارج الدالة startswith() :
#define tuple of strings
some_strings = (' Upper ', ' Lower ')
#select all rows where store does not start with strings in tuple
df[~df. blind . str . startswith (some_strings)]
blind sales
3 West 198
4 CTR 177
وينتج عن ذلك نفس نتيجة الطريقة السابقة.
ملاحظة : يمكنك العثور على الوثائق الكاملة لوظيفة startwith في الباندا هنا .
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في الباندا:
الباندا: كيفية تصفية الصفوف بناءً على طول السلسلة
الباندا: كيفية التحقق مما إذا كان العمود يحتوي على سلسلة
الباندا: كيفية ربط السلاسل باستخدام GroupBy