علم البيانات - تجهيز البيانات


قبل تحليل البيانات ، يجب على عالم البيانات استخراج البيانات وجعلها نظيفة وقيمة.


استخراج البيانات وقراءتها مع الباندا

قبل أن يتم تحليل البيانات ، يجب استيرادها / استخراجها.

في المثال أدناه ، نوضح لك كيفية استيراد البيانات باستخدام Pandas في Python.

نستخدم read_csv()الوظيفة لاستيراد ملف CSV بالبيانات الصحية:

مثال

import pandas as pd

health_data = pd.read_csv("data.csv", header=0, sep=",")

print(health_data)

شرح المثال

  • استيراد مكتبة الباندا
  • قم بتسمية إطار البيانات باسم health_data.
  • header=0يعني أنه يجب العثور على رؤوس أسماء المتغيرات في الصف الأول (لاحظ أن الرقم 0 يعني الصف الأول في Python)
  • sep=","يعني أن "،" تستخدم كفاصل بين القيم. هذا لأننا نستخدم نوع الملف .csv (قيم مفصولة بفواصل)

نصيحة: إذا كان لديك ملف CSV كبير ، فيمكنك استخدام head()الوظيفة لعرض الصفوف الخمسة العلوية فقط:

مثال

import pandas as pd

health_data = pd.read_csv("data.csv", header=0, sep=",")

print(health_data.head())

تنظيف البيانات

انظر إلى البيانات المستوردة. كما ترى ، البيانات "قذرة" بقيم خاطئة أو غير مسجلة:

بيانات قذرة
  • هناك بعض الحقول الفارغة
  • متوسط ​​النبض 9000 غير ممكن
  • سيتم التعامل مع 9000 على أنها غير رقمية ، بسبب فاصل المسافة
  • يُشار إلى ملاحظة واحدة للنبض الأقصى باسم "AF" ، وهو أمر غير منطقي

لذلك ، يجب علينا تنظيف البيانات من أجل إجراء التحليل.


إزالة الصفوف الفارغة

نرى أن القيم غير الرقمية (9000 و AF) موجودة في نفس الصفوف بقيم مفقودة.

الحل: يمكننا إزالة الصفوف التي بها ملاحظات مفقودة لإصلاح هذه المشكلة.

عندما نقوم بتحميل مجموعة بيانات باستخدام Pandas ، يتم تحويل جميع الخلايا الفارغة تلقائيًا إلى قيم "NaN".

لذا ، فإن إزالة خلايا NaN تعطينا مجموعة بيانات نظيفة يمكن تحليلها.

يمكننا استخدام dropna()الوظيفة لإزالة NaNs. المحور = 0 يعني أننا نريد إزالة جميع الصفوف التي لها قيمة NaN:

مثال

health_data.dropna(axis=0,inplace=True)

print(health_data)

والنتيجة هي مجموعة بيانات بدون صفوف NaN:

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

فئات البيانات

لتحليل البيانات ، نحتاج أيضًا إلى معرفة أنواع البيانات التي نتعامل معها.

يمكن تقسيم البيانات إلى ثلاث فئات رئيسية:

  1. عددية - تحتوي على قيم عددية. يمكن تقسيمها إلى فئتين:
    • منفصلة: يتم حساب الأرقام على أنها "كاملة". مثال: لا يمكنك تدريب 2.5 جلسة ، إما أن تكون جلستين أو 3
    • مستمر: يمكن أن تكون الأرقام ذات دقة لا نهائية. على سبيل المثال ، يمكنك النوم لمدة 7 ساعات ، و 30 دقيقة ، و 20 ثانية ، أو 7.533 ساعة
  2. فئوي - يحتوي على قيم لا يمكن قياسها مقابل بعضها البعض. مثال: لون أو نوع من التدريب
  3. ترتيبي - يحتوي على بيانات فئوية يمكن قياسها مقابل بعضها البعض. مثال: درجات المدرسة التي يكون فيها "أ" أفضل من "ب" وهكذا

من خلال معرفة نوع البيانات الخاصة بك ، ستتمكن من معرفة الأسلوب الذي يجب استخدامه عند تحليلها.


أنواع البيانات

يمكننا استخدام info()الوظيفة لسرد أنواع البيانات ضمن مجموعة البيانات الخاصة بنا: 

مثال

print(health_data.info())

نتيجة:

نوع البيانات عائم وكائن

نرى أن مجموعة البيانات هذه تحتوي على نوعين مختلفين من البيانات:

  • فلوت 64
  • هدف

لا يمكننا استخدام الكائنات لحساب وإجراء التحليل هنا. يجب أن نقوم بتحويل كائن الكتابة إلى float64 (يمثل float64 رقمًا به رقم عشري في Python).

يمكننا استخدام astype()الدالة لتحويل البيانات إلى float64.

المثال التالي يحول "Average_Pulse" و "Max_Pulse" إلى نوع بيانات float64 (المتغيرات الأخرى هي بالفعل من نوع البيانات float64):

مثال

health_data["Average_Pulse"] = health_data['Average_Pulse'].astype(float)
health_data["Max_Pulse"] = health_data["Max_Pulse"].astype(float)

print (health_data.info())

نتيجة:

نوع البيانات عائم

الآن ، تحتوي مجموعة البيانات على أنواع بيانات float64 فقط.


تحليل البيانات

عندما نقوم بتنظيف مجموعة البيانات ، يمكننا البدء في تحليل البيانات.

يمكننا استخدام describe()الوظيفة في Python لتلخيص البيانات:

مثال

print(health_data.describe())

نتيجة:

  مدة متوسط ​​النبض Max_Pulse السعرات الحرارية ساعات_العمل ساعات_النوم
عدد 10.0 10.0 10.0 10.0 10.0 10.0
يعني 51.0 102.5 137.0 285.0 6.6 7.5
الأمراض المنقولة جنسيا 10.49 15.4 11.35 30.28 3.63 0.53
دقيقة 30.0 80.0 120.0 240.0 0.0 7.0
25٪ 45.0 91.25 130.0 262.5 7.0 7.0
50٪ 52.5 102.5 140.0 285.0 8.0 7.5
75٪ 60.0 113.75 145.0 307.5 8.0 8.0
الأعلى 60.0 125.0 150.0 330.0 10.0 8.0
  • Count - تحسب عدد المشاهدات
  • يعني - متوسط ​​القيمة
  • الأمراض المنقولة جنسياً - الانحراف المعياري (موضح في فصل الإحصاء)
  • Min - أدنى قيمة
  • 25٪ و 50٪ و 75٪ هي نسب مئوية (موضحة في فصل الإحصاء)
  • ماكس - أعلى قيمة