الأخبار التكنولوجية والاستعراضات والنصائح!

الدليل الكامل لـ Pandas DataFrame مع حالة استخدام في الوقت الفعلي – نحو AI

ستساعدك المقالة التالية: الدليل الكامل لـ Pandas DataFrame مع حالة استخدام في الوقت الفعلي – نحو AI

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

الدليل الكامل لإطار بيانات Pandas مع واقعة الاستخدام في الوقت الفعلي

بعد سلسلة Pyspark الخاصة بي – حيث يهتم القراء في الغالب بـ Pyspark Dataframe و Pyspark RDD ، تلقيت اقتراحات وطلبات للكتابة على Pandas DataFrame ، بحيث يمكن للمرء المقارنة بين Pyspark و Pandas ليس من حيث الاستهلاك ولكن من حيث النحو. لذلك اليوم في هذه المقالة ، سنركز على وظائف Pandas DataFrame باستخدام Titanic Dataset.

الرجوع إلى لوحة البيانات / تحليل بيانات بايثون. بشكل عام ، Pandas هي مكتبة بيثون تستخدم للعمل مع مجموعات البيانات.

في الباندا عبارة عن هيكل بيانات ثنائي الأبعاد أو جدول به صفوف وأعمدة. توفر DataFrames وظائف لإنشاء البيانات وتحليلها وتنظيفها واستكشافها ومعالجتها.

تثبيت:

نقطة تثبيت الباندا

استيراد الباندا:

استيراد الباندا كما pd
طباعة (pd .__ نسخة__)

سيؤدي هذا إلى طباعة إصدار Pandas إذا نجح تثبيت Pandas.

إنشاء DataFrame:

إنشاء DataFrame فارغ –

df = pd.DataFrame ()
df.head (5) # يطبع أول 5 صفوف في DataFrame

إنشاء DataFrame من dict—

الموظفون = {‘Name’:[‘chandu’,’rohith’,’puppy’]،’عمر’:[26,24,29]،’مرتب’:[180000,130000,240000]} df = pd.DataFrame (موظفون)
df.head ()

إنشاء Dataframe من قائمة القوائم –

الموظفين = [[‘chandu’,26,180000]و [‘rohith’, 24, 130000]و[‘puppy’, 29 ,240000]]df = pd.DataFrame (الموظفون ، الأعمدة =[“Name”,”Age”,”Salary”])
df.head ()

ذكر استيراد البيانات من ملف CSV هنا.

df = pd.read_csv (“/ content / titanic_train.csv”) df.head (5)

كما هو مبين أعلاه، سيعيد أول n من الصفوف من DataFrame أثناء سيعيد الصفوف n الأخيرة من DataFrame.

print (df.shape) # يطبع شكل DataFrame – طباعة الصفوف * الأعمدة (df.columns) # إرجاع أسماء الأعمدة

value_counts () – تُرجع القيم الفريدة بأعدادها في عمود معين.

مدافع[“Embarked”].value_counts ()

df.describe () –الحصول على معلومات حول كافة الأعمدة العددية في DataFrame

df.describe ()

df.info () – ترجع نوع البيانات والعدد لكافة الأعمدة في DataFrame

df.info ()

كما رأينا أعلاه ، يوجد عدد Age و Cabin أقل من 891 ، لذلك قد تكون هناك قيم مفقودة في تلك الأعمدة. يمكننا أيضًا رؤية نوع الأعمدة في DataFrame.

معالجة القيم المفقودة

الحصول على عدد القيم المفقودة –

df.isnull (). sum ()

كما رأينا أعلاه ، فإن الأعمدة “Age” و “Cabin” و “Embarked” بها قيم مفقودة.

للحصول على النسبة المئوية للقيم المفقودة –

df.isnull (). sum () / df.shape[0] * 100

كما نرى ، فإن النسبة المئوية للقيم المفقودة في المقصورة تزيد عن 75٪ ، لذلك دعنا نسقط العمود.

df = df.drop ([‘Cabin’]، المحور = 1)

يتم استخدام الأمر أعلاه لإسقاط أعمدة معينة من DataFrame.

فرض القيم المفقودة

دعنا ننسب القيم المفقودة في عمود العمر بمتوسط ​​القيمة.

مدافع[‘Age’].fillna (df[‘Age’].mean ()، inplace = صحيح)

ونسب القيم المفقودة في عمود Embarked حسب قيمة الوضع.

مدافع[‘Embarked’].fillna (df[‘Embarked’].mode (). item ()، inplace = True)

في المثال أعلاه ، يتم استخدام .item () لأننا نتعامل مع عمود سلسلة. أعتقد أنه تم التعامل مع جميع القيم المفقودة ، دعنا نتحقق –

إعادة تسمية الأعمدة

df = df.rename (الأعمدة = {‘Sex’: ‘Gender’، ‘Name’: ‘Full Name’})
df.head ()

إضافة / تعديل الأعمدة

مدافع[‘last_name’]= مدافع[‘Full Name’].apply (lambda x: x.split (‘،’)[0]) مدافع[‘first_name’]= مدافع[‘Full Name’].apply (lambda x: “.join (x.split (‘،’)[1:])) df.head (5)

مضيفا الصفوف – نستخدم طريقة لإضافة الصفوف

row =ict ({‘Age’: 24، ‘Full Name’: ‘Rohith’، ‘Survived’: ‘Y’}) df = df.append (row، ignore_index = True) df.tail ()

يتم إنشاء صف جديد ، ويتم تهيئة قيم NaN للأعمدة التي لا تحتوي على قيم

باستخدام طريقة loc ():

df.loc[len(df.index)]= صف
df.tail ()

حذف الصفوف

باستخدام طريقة df.index () –

df = df.drop (فهرس df[-1]، المحور = 0)
df.head ()

أعمدة الترميز

بالنسبة لمعظم خوارزميات التعلم الآلي ، يجب أن يكون لدينا بيانات رقمية بدلاً من البيانات بتنسيق String. لذا فإن تشفير البيانات أمر لا بد منه.

مدافع[‘Gender’]= مدافع[‘Gender’].map ({“male”: ‘0’، “female”: “1”}) df.head (5)

نظرًا لأن هذه العملية تصبح محمومة لجميع الأعمدة إذا استخدمنا الطريقة المذكورة أعلاه ، فهناك العديد من الطرق مثل LabelEncoder و OneHotEncoder و MultiColumnLabelEncoder المتاحة لتشفير DataFrames. تم شرحها بوضوح في المادة أدناه –

طرق الترميز لتشفير البيانات الفئوية في التعلم الآلي

تصفية البيانات

اختيار البيانات فقط عندما يكون العمر أكبر من 25.

مدافع[df[“Age”]> 25].head (5)

وبالمثل ، يمكننا استخدام عمليات> و <و ==.

مدافع[(df[“Age”]<25) & (مدافع["Gender"]== "1")].head (5)

تحديد البيانات عندما يكون العمر أقل من 25 والجنس هو 1. بالطريقة أعلاه ، يمكننا أيضًا تصفية أعمدة متعددة.

تطبيق () وظيفة :

لنفترض أن الأشخاص الذين تقل أعمارهم عن 15 عامًا وأكبر من 60 عامًا سيتم إنقاذهم أولاً. لنقم بعمل عمود باستخدام الوظيفة.

def save_first (العمر):
إذا كان العمر أقل من 15 عامًا:
العودة 1
عمر إليف> = 15 سنة وعمر أقل من 60 سنة:
العودة 0
عمر إليف> = 60:
عودة 1 df[‘save_first’]= مدافع[‘Age’].apply (lambda x: save_first (x))

تحديد أعمدة وصفوف معينة:

df_1 = مدافع[[‘Age’,’Survived’,’Gender’]]df_1.head ()

استخدام .iloc () –يستخدم الفهارس العددية لإرجاع صفوف وأعمدة معينة في DataFrame

df_2 = df.iloc[0:100,:]
df_2.head ()

تُرجع أول 100 صف وجميع الأعمدة في DataFrame

df_2 = df.iloc[0:100, [0,1,2]]df_2.head ()

تُرجع أول 100 صف وأول 3 أعمدة في DataFrame

.loc ()function – تشبه .iloc () ولكنها تستخدم Column Names بدلاً من الفهارس العددية.

df_2 = df.loc[0:100, [‘Age’,’Survived’,’Gender’]]df_2.head ()

فرز

يمكننا إجراء عمليات الفرز في DataFrame باستخدام ()طريقة.

df = df.sort_values ​​(بواسطة =[‘Age’]تصاعدي = خطأ) df.head ()

يمكننا أيضًا استخدام عدة أعمدة – الفرز الأول حسب العمود الأول ، متبوعًا بالعمود الثاني.

df = df.sort_values ​​(بواسطة =[‘Age’, ‘Survived’]تصاعدي = خطأ) مدافع[15:20]

ينضم

الانضمام ليس سوى دمج العديد من إطارات البيانات استنادًا إلى عمود معين.

دعونا نجري 5 أنواع من عمليات الوصل – متقاطعة ، داخلية ، يسار ، يمين ، وخارجي

يُعرف أيضًا باسم الصلة الديكارتية ، والتي تُرجع جميع مجموعات الصفوف من كل جدول.

cross_join = pd.merge (df1، df2، how = ‘cross’)

ترجع فقط تلك الصفوف التي لها قيم متطابقة في كلا إطاري البيانات.

inner_join = pd.merge (df1، df2، how = ‘inner’، on = ‘column_name’)

تُرجع جميع الصفوف من DataFrame الأول ، إذا لم تكن هناك قيم مطابقة ، فإنها تُرجع قيمًا فارغة لـ DataFrame الثاني

left_join = pd.merge (df1، df2، how = ‘left’، on = ‘column_name’)

تُرجع جميع الصفوف من DataFrame الثاني. إذا لم تكن هناك قيم مطابقة ، فإنها تُرجع قيمًا خالية لأول DataFrame

right_join = pd.merge (df1، df2، how = ‘right’، on = ‘column_name’)

تُرجع جميع الصفوف من كلٍّ من إطارات البيانات الأولى والثانية. في حالة عدم وجود تطابق في إطار البيانات الأول ، ستكون القيم في إطار البيانات الثاني خالية و ViceVersa

Outer_join = pd.merge (df1، df2، how = ‘external’، on = ‘column_name’)

مجموعة من()

تُستخدم هذه الطريقة لتجميع إطار بيانات بناءً على عدد قليل من الأعمدة.

المجموعات = df.groupby ([‘Survived’]) groups.get_group (1)

تُستخدم طريقة get_group () للحصول على البيانات التي تنتمي إلى مجموعة معينة.

GroupBy () تستخدم عمومًا مع الدوال الرياضية مثل المتوسط ​​() ، min () ، max () وما إلى ذلك ،

مجموعات[‘Age’].mean () المجموعات[‘Age’].count () مجموعات[‘Age’].min ()
مجموعات[‘Age’].الأعلى()

استخدام .agg ()وظيفة

استيراد numpy كـ np group_agg = df.groupby ([‘Survived’]) .agg ({‘Age’: lambda x: np.mean (x)}) group_agg.head ()

لذلك أعتقد أنني غطيت معظم المفاهيم الأساسية المتعلقة بـ Pandas DataFrame.

نتمنى لك ترميزًا سعيدًا…


تم نشر الدليل الكامل لـ Pandas DataFrame مع حالة استخدام في الوقت الفعلي في الأصل في Towards AI on Medium ، حيث يواصل الأشخاص المحادثة من خلال تسليط الضوء على هذه القصة والرد عليها.

تم النشر عبر نحو الذكاء الاصطناعي