إتقان فن تنظيف البيانات في بايثون - KDnuggets

إتقان فن تنظيف البيانات في بايثون - KDnuggets

عقدة المصدر: 2939047

إتقان فن تنظيف البيانات في بايثون
صورة المؤلف
 

يعد تنظيف البيانات جزءًا مهمًا من أي عملية تحليل بيانات. إنها الخطوة التي تقوم فيها بإزالة الأخطاء ومعالجة البيانات المفقودة والتأكد من أن بياناتك بتنسيق يمكنك التعامل معه. وبدون مجموعة بيانات جيدة التنظيف، يمكن أن تكون أي تحليلات لاحقة منحرفة أو غير صحيحة.

تقدم لك هذه المقالة العديد من التقنيات الأساسية لتنظيف البيانات في بايثون، باستخدام مكتبات قوية مثل pandas وnumpy وseaborn وmatplotlib.

قبل الغوص في آليات تنظيف البيانات، دعونا نفهم أهميتها. غالبًا ما تكون بيانات العالم الحقيقي فوضوية. يمكن أن تحتوي على إدخالات مكررة، وأنواع بيانات غير صحيحة أو غير متناسقة، وقيم مفقودة، وميزات غير ذات صلة، وقيم متطرفة. كل هذه العوامل يمكن أن تؤدي إلى استنتاجات مضللة عند تحليل البيانات. وهذا يجعل تنظيف البيانات جزءًا لا غنى عنه في دورة حياة علم البيانات.

سنغطي مهام تنظيف البيانات التالية.
 

إتقان فن تنظيف البيانات في بايثون
صورة المؤلف

قبل البدء، فلنستورد المكتبات الضرورية. سوف نستخدم حيوانات الباندا لمعالجة البيانات، وseaborn وmatplotlib للتصورات.

سنقوم أيضًا باستيراد وحدة datetime Python لمعالجة التواريخ.

import pandas as pd
import seaborn as sns
import datetime as dt
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker

أولاً، سنحتاج إلى تحميل بياناتنا. في هذا المثال، سنقوم بتحميل ملف CSV باستخدام الباندا. نضيف أيضًا الوسيطة المحددة.

df = pd.read_csv('F:KDNuggetsKDN Mastering the Art of Data Cleaning in Pythonproperty.csv', delimiter= ';')

بعد ذلك، من المهم فحص البيانات لفهم بنيتها، ونوع المتغيرات التي نعمل معها، وما إذا كانت هناك أي قيم مفقودة. نظرًا لأن البيانات التي استوردناها ليست ضخمة، فلنلقي نظرة على مجموعة البيانات بأكملها.

# Look at all the rows of the dataframe
display(df)

وإليك كيف تبدو مجموعة البيانات.

 

إتقان فن تنظيف البيانات في بايثون
 

يمكنك أن ترى على الفور أن هناك بعض القيم المفقودة. كما أن تنسيقات التاريخ غير متناسقة.

الآن، دعونا نلقي نظرة على ملخص DataFrame باستخدام طريقة info().

# Get a concise summary of the dataframe
print(df.info())

ها هو إخراج الكود.

 

إتقان فن تنظيف البيانات في بايثون
 

يمكننا أن نرى أن العمود Square_feet فقط لا يحتوي على أي قيم فارغة، لذلك سيتعين علينا التعامل مع هذا بطريقة ما. كما أن العمودينإعلان_تاريخ_البيع وتاريخ_البيع هما نوع بيانات الكائن، على الرغم من أن هذا يجب أن يكون تاريخًا.

موقع العمود فارغ تمامًا. هل نحن في حاجة إليها؟

سنوضح لك كيفية التعامل مع هذه المشكلات. سنبدأ بتعلم كيفية حذف الأعمدة غير الضرورية.

يوجد عمودان في مجموعة البيانات لا نحتاجهما في تحليل البيانات لدينا، لذلك سنقوم بإزالتهما.

العمود الأول هو المشتري. لا نحتاج إليها، لأن اسم المشتري لا يؤثر على التحليل.

نحن نستخدم طريقة drop() مع اسم العمود المحدد. قمنا بتعيين المحور على 1 لتحديد أننا نريد حذف عمود. أيضًا، يتم تعيين الوسيطة inplace على True حتى نتمكن من تعديل DataFrame الموجود، وعدم إنشاء DataFrame جديد بدون العمود المحذوف.

df.drop('buyer', axis = 1, inplace = True)

العمود الثاني الذي نريد إزالته هو الموقع. على الرغم من أنه قد يكون من المفيد الحصول على هذه المعلومات، إلا أن هذا العمود فارغ تمامًا، لذا فلنقم بإزالته.

نحن نتبع نفس النهج كما هو الحال مع العمود الأول.

df.drop('location', axis = 1, inplace = True)

وبطبيعة الحال، يمكنك إزالة هذين العمودين في وقت واحد.

df = df.drop(['buyer', 'location'], axis=1)

يقوم كلا الأسلوبين بإرجاع إطار البيانات التالي.

 

إتقان فن تنظيف البيانات في بايثون

يمكن أن تحدث بيانات مكررة في مجموعة البيانات الخاصة بك لأسباب مختلفة ويمكن أن تؤدي إلى تحريف تحليلك.

دعونا نكتشف التكرارات في مجموعة البيانات لدينا. هيريس كيفية القيام بذلك.

يستخدم الكود أدناه الطريقة مكرر () للنظر في التكرارات في مجموعة البيانات بأكملها. الإعداد الافتراضي الخاص به هو اعتبار التواجد الأول للقيمة فريدًا والتكرارات اللاحقة كتكرارات. يمكنك تعديل هذا السلوك باستخدام احتفظ معامل. على سبيل المثال، df.duplicated(keep=False) سيضع علامة على جميع التكرارات على أنها True، بما في ذلك التكرار الأول.

# Detecting duplicates
duplicates = df[df.duplicated()]
duplicates

وهنا الإخراج.

 

إتقان فن تنظيف البيانات في بايثون
 

تم وضع علامة على الصف الذي يحتوي على الفهرس 3 على أنه مكرر لأن الصف 2 الذي يحمل نفس القيم هو أول ظهور له.

نحتاج الآن إلى إزالة التكرارات، وهو ما نقوم به باستخدام الكود التالي.

# Detecting duplicates
duplicates = df[df.duplicated()]
duplicates

drop_duplicates() تأخذ الدالة جميع الأعمدة بعين الاعتبار أثناء تحديد التكرارات. إذا كنت تريد النظر في أعمدة معينة فقط، فيمكنك تمريرها كقائمة إلى هذه الوظيفة مثل هذا: df.drop_duplicates(subset=['column1', 'column2']).

 

إتقان فن تنظيف البيانات في بايثون
 

كما ترون، تم إسقاط الصف المكرر. ومع ذلك، ظلت الفهرسة على حالها، مع فقدان الفهرس 3. سنقوم بترتيب هذا عن طريق إعادة ضبط المؤشرات.

df = df.reset_index(drop=True)

يتم تنفيذ هذه المهمة باستخدام إعادة تعيين_الفهرس () وظيفة. يتم استخدام الوسيطة drop=True لتجاهل الفهرس الأصلي. إذا لم تقم بتضمين هذه الوسيطة، فسيتم إضافة الفهرس القديم كعمود جديد في DataFrame الخاص بك. من خلال تعيين drop=True، فإنك تطلب من الباندا أن تنسى الفهرس القديم وتعيد ضبطه على الفهرس الصحيح الافتراضي.

للممارسة، حاول قم بإزالة التكرارات من مجموعة بيانات Microsoft هذه.

في بعض الأحيان، قد يتم تعيين أنواع البيانات بشكل غير صحيح. على سبيل المثال، قد يتم تفسير عمود التاريخ على أنه سلاسل. تحتاج إلى تحويل هذه إلى أنواعها المناسبة.

في مجموعة البيانات الخاصة بنا، سنفعل ذلك بالنسبة للعمودين "address_date" و"sale_date"، حيث يتم عرضهما كنوع بيانات الكائن. بالإضافة إلى ذلك، يتم تنسيق تواريخ التاريخ بشكل مختلف عبر الصفوف. نحن بحاجة إلى جعلها متسقة، إلى جانب تحويلها إلى التاريخ.

أسهل طريقة هي استخدام to_datetime () طريقة. مرة أخرى، يمكنك القيام بذلك عمودًا تلو الآخر، كما هو موضح أدناه.

عند القيام بذلك، قمنا بتعيين الوسيطة dayfirst على True لأن بعض التواريخ تبدأ باليوم الأول.

# Converting advertisement_date column to datetime
df['advertisement_date'] = pd.to_datetime(df['advertisement_date'], dayfirst = True) # Converting sale_date column to datetime
df['sale_date'] = pd.to_datetime(df['sale_date'], dayfirst = True)

يمكنك أيضًا تحويل كلا العمودين في نفس الوقت باستخدام تطبيق() طريقة مع to_datetime ().

# Converting advertisement_date and sale_date columns to datetime
df[['advertisement_date', 'sale_date']] = df[['advertisement_date', 'sale_date']].apply(pd.to_datetime, dayfirst = True)

كلا الطريقتين تعطيك نفس النتيجة.

 

إتقان فن تنظيف البيانات في بايثون
 

الآن أصبحت التواريخ بتنسيق ثابت. نرى أنه لم يتم تحويل كافة البيانات. توجد قيمة NaT واحدة فيadmission_date واثنتين في Sale_date. هذا يعني أن التاريخ مفقود.

دعونا نتحقق مما إذا تم تحويل الأعمدة إلى تواريخ باستخدام الملف معلومات() الأسلوب.

# Get a concise summary of the dataframe
print(df.info())

 

إتقان فن تنظيف البيانات في بايثون
 

كما ترون، كلا العمودين ليسا بتنسيق datetime64[ns].

الآن، حاول تحويل البيانات من TEXT إلى NUMERIC في هذا مجموعة بيانات Airbnb.

غالبًا ما تحتوي مجموعات البيانات الواقعية على قيم مفقودة. تعد معالجة البيانات المفقودة أمرًا حيويًا، حيث لا تستطيع بعض الخوارزميات التعامل مع مثل هذه القيم.

يحتوي مثالنا أيضًا على بعض القيم المفقودة، لذلك دعونا نلقي نظرة على الطريقتين الأكثر شيوعًا للتعامل مع البيانات المفقودة.

حذف الصفوف ذات القيم المفقودة

إذا كان عدد الصفوف التي تحتوي على بيانات مفقودة غير مهم مقارنة بإجمالي عدد الملاحظات، فقد تفكر في حذف هذه الصفوف.

في مثالنا، لا يحتوي الصف الأخير على أي قيم باستثناء القدم المربع وتاريخ الإعلان. لا يمكننا استخدام مثل هذه البيانات، لذلك دعونا نزيل هذا الصف.

إليك الرمز الذي نشير فيه إلى فهرس الصف.

df = df.drop(8)

يبدو DataFrame الآن هكذا.

 

إتقان فن تنظيف البيانات في بايثون
 

تم حذف الصف الأخير، ويبدو الآن DataFrame أفضل. ومع ذلك، لا تزال هناك بعض البيانات المفقودة والتي سنتعامل معها باستخدام طريقة أخرى.

إسناد القيم المفقودة

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

في DataFrame الذي تم تغييره بالفعل، لدينا قيم NaT (ليس وقتًا) في العمودينإعلان_تاريخ_البيع وتاريخ_البيع. سنقوم بإسناد هذه القيم المفقودة باستخدام تعني() الأسلوب.

يستخدم الرمز فيلنا () طريقة للعثور على القيم الخالية وملئها بالقيمة المتوسطة.

# Imputing values for numerical columns
df['advertisement_date'] = df['advertisement_date'].fillna(df['advertisement_date'].mean())
df['sale_date'] = df['sale_date'].fillna(df['sale_date'].mean())

يمكنك أيضًا أن تفعل الشيء نفسه في سطر واحد من التعليمات البرمجية. نحن نستخدم ال تطبيق() لتطبيق الوظيفة المحددة باستخدام لامدا. كما هو مذكور أعلاه، تستخدم هذه الوظيفة فيلنا () و تعني() طرق لملء القيم المفقودة.

# Imputing values for multiple numerical columns
df[['advertisement_date', 'sale_date']] = df[['advertisement_date', 'sale_date']].apply(lambda x: x.fillna(x.mean()))

يبدو الإخراج في كلتا الحالتين هكذا.

 

إتقان فن تنظيف البيانات في بايثون
 

يحتوي عمود Sale_date الآن على الأوقات التي لا نحتاج إليها. دعونا إزالتها.

سنستخدم strftime () الطريقة، التي تحول التواريخ إلى تمثيل السلسلة الخاص بها وتنسيق محدد.

df['sale_date'] = df['sale_date'].dt.strftime('%Y-%m-%d')

 

إتقان فن تنظيف البيانات في بايثون
 

تبدو التواريخ الآن مرتبة تمامًا.

إذا كنت بحاجة إلى استخدام strftime () على أعمدة متعددة، يمكنك استخدامها مرة أخرى لامدا بالطريقة التالية.

df[['date1_formatted', 'date2_formatted']] = df[['date1', 'date2']].apply(lambda x: x.dt.strftime('%Y-%m-%d'))

الآن، دعونا نرى كيف يمكننا أن ننسب القيم الفئوية المفقودة.

البيانات الفئوية هي نوع من البيانات يتم استخدامها لتجميع المعلومات ذات الخصائص المتشابهة. كل مجموعة من هذه المجموعات هي فئة. يمكن أن تأخذ البيانات الفئوية قيمًا رقمية (مثل "1" تشير إلى "ذكر" و"2" تشير إلى "أنثى")، ولكن هذه الأرقام ليس لها معنى رياضي. لا يمكنك جمعهم معًا، على سبيل المثال.

تنقسم البيانات الفئوية عادةً إلى فئتين:

  1. بيانات اسمية: يحدث هذا عندما يتم تصنيف الفئات فقط ولا يمكن ترتيبها بأي ترتيب معين. تشمل الأمثلة الجنس (ذكر، أنثى)، أو فصيلة الدم (A، B، AB، O)، أو اللون (أحمر، أخضر، أزرق).
  1. البيانات ترتيبي: هذا هو الوقت الذي يمكن فيه ترتيب الفئات أو تصنيفها. في حين أن الفواصل الزمنية بين الفئات ليست متباعدة بالتساوي، فإن ترتيب الفئات له معنى. تشمل الأمثلة مقاييس التصنيف (تقييم من 1 إلى 5 للفيلم)، أو المستوى التعليمي (المدرسة الثانوية، أو المرحلة الجامعية، أو الدراسات العليا)، أو مراحل السرطان (المرحلة الأولى، المرحلة الثانية، المرحلة الثالثة).

لإدراج البيانات الفئوية المفقودة، يتم استخدام الوضع عادةً. في مثالنا، العمود property_category عبارة عن بيانات فئوية (اسمية)، وهناك بيانات مفقودة في صفين.

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

# For categorical columns
df['property_category'] = df['property_category'].fillna(df['property_category'].mode()[0])

يستخدم هذا الرمز فيلنا () دالة لاستبدال جميع قيم NaN في عمود property_category. يستبدله بالوضع.

بالإضافة إلى ذلك، يتم استخدام الجزء [0] لاستخراج القيمة الأولى من هذه السلسلة. إذا كان هناك أوضاع متعددة، فسيتم تحديد الوضع الأول. إذا كان هناك وضع واحد فقط، فإنه لا يزال يعمل بشكل جيد.

وهنا الإخراج.

 

إتقان فن تنظيف البيانات في بايثون
 

تبدو البيانات الآن جيدة جدًا. الشيء الوحيد المتبقي هو معرفة ما إذا كانت هناك قيم متطرفة.

يمكنك التدرب على التعامل مع القيم الخالية في هذا الشأن سؤال المقابلة ميتا، حيث سيتعين عليك استبدال القيم الخالية بالأصفار.

القيم المتطرفة هي نقاط بيانات في مجموعة بيانات تختلف بشكل واضح عن الملاحظات الأخرى. وقد تكون بعيدة بشكل استثنائي عن القيم الأخرى في مجموعة البيانات، وتتواجد خارج النمط العام. تعتبر غير عادية نظرًا لأن قيمها إما أعلى أو أقل بكثير مقارنة ببقية البيانات.

يمكن أن تنشأ القيم المتطرفة لأسباب مختلفة مثل:

  • أخطاء القياس أو الإدخال
  • تلف البيانات
  • الشذوذات الإحصائية الحقيقية

يمكن أن تؤثر القيم المتطرفة بشكل كبير على نتائج تحليل البيانات والنمذجة الإحصائية. يمكن أن تؤدي إلى توزيع منحرف أو انحياز أو إبطال الافتراضات الإحصائية الأساسية، وتشويه ملاءمة النموذج المقدرة، وتقليل الدقة التنبؤية للنماذج التنبؤية، وتؤدي إلى استنتاجات غير صحيحة.

بعض الطرق الشائعة الاستخدام لاكتشاف القيم المتطرفة هي Z-score، وIQR (المدى الرباعي)، والمخططات الصندوقية، والمخططات المبعثرة، وتقنيات تصور البيانات. وفي بعض الحالات المتقدمة، يتم استخدام أساليب التعلم الآلي أيضًا.

يمكن أن يساعد تصور البيانات في تحديد القيم المتطرفة. Boxplot الخاص بـ Seaborn مفيد لهذا الغرض.

plt.figure(figsize=(10, 6))
sns.boxplot(data=df[['advertised_price', 'sale_price']])

نستخدم plt.figure()‎ لتعيين عرض وارتفاع الشكل بالبوصة.

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

 

إتقان فن تنظيف البيانات في بايثون
 

يمكن تحسين الحبكة لتسهيل استخدامها عن طريق إضافة هذا إلى الكود أعلاه.

plt.xlabel('Prices')
plt.ylabel('USD')
plt.ticklabel_format(style='plain', axis='y')
formatter = ticker.FuncFormatter(lambda x, p: format(x, ',.2f'))
plt.gca().yaxis.set_major_formatter(formatter)

نستخدم الكود أعلاه لتعيين التسميات لكلا المحورين. نلاحظ أيضًا أن القيم على المحور y موجودة بالترميز العلمي، ولا يمكننا استخدام ذلك لقيم الأسعار. لذلك قمنا بتغيير هذا إلى النمط العادي باستخدام وظيفة plt.ticklabel_format().

ثم نقوم بإنشاء المنسق الذي سيُظهر القيم على المحور y بفواصل كآلاف الفواصل والنقاط العشرية. يطبق سطر الكود الأخير هذا على المحور.

يبدو الإخراج الآن مثل هذا.

 

إتقان فن تنظيف البيانات في بايثون
 

الآن، كيف يمكننا تحديد وإزالة القيم المتطرفة؟

إحدى الطرق هي استخدام طريقة IQR.

IQR، أو المدى الرباعي، هي طريقة إحصائية تستخدم لقياس التباين عن طريق تقسيم مجموعة البيانات إلى شرائح ربعية. تقسم الربعيات مجموعة البيانات مرتبة إلى أربعة أجزاء متساوية، وتشكل القيم الموجودة ضمن نطاق الربع الأول (المئوي الخامس والعشرون) والربيع الثالث (المئوي الخامس والسبعون) النطاق الرباعي.

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

  1. أولاً، قم بحساب الربع الأول (Q1)، والربيع الثالث (Q3)، ثم حدد معدل الذكاء IQR. يتم حساب معدل الذكاء IQR على أنه Q3 - Q1.
  2. أي قيمة أقل من Q1 - 1.5IQR أو أعلى من Q3 + 1.5IQR تعتبر قيمة متطرفة.

في مخططنا الصندوقي، يمثل الصندوق في الواقع معدل الذكاء IQR. الخط الموجود داخل الصندوق هو الوسيط (أو الربع الثاني). تمثل "شعيرات" boxplot النطاق ضمن 1.5*IQR من Q1 وQ3.

يمكن اعتبار أي نقاط بيانات خارج هذه الشعيرات قيمًا متطرفة. في حالتنا، تبلغ قيمتها 12,000,000 دولار. إذا نظرت إلى boxplot، فسترى مدى وضوح تمثيل ذلك، مما يوضح سبب أهمية تصور البيانات في اكتشاف القيم المتطرفة.

الآن، دعونا نزيل القيم المتطرفة باستخدام طريقة IQR في كود بايثون. أولاً، سنقوم بإزالة القيم المتطرفة للسعر المعلن عنه.

Q1 = df['advertised_price'].quantile(0.25)
Q3 = df['advertised_price'].quantile(0.75)
IQR = Q3 - Q1
df = df[~((df['advertised_price'] (Q1 - 1.5 * IQR)) |(df['advertised_price'] > (Q3 + 1.5 * IQR)))]

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

وهي تظهر القيم التي تقع أدناه 25% و75% من البيانات، على التوالي.

ثم نحسب الفرق بين الربيعين. كل شيء حتى الآن هو مجرد ترجمة خطوات IQR إلى كود بايثون.

كخطوة أخيرة، نقوم بإزالة القيم المتطرفة. بمعنى آخر، جميع البيانات أقل من Q1 – 1.5 * IQR أو أكثر من Q3 + 1.5 * IQR.

ينفي عامل التشغيل '~' الشرط، لذلك لم يتبق لدينا سوى البيانات التي ليست قيمًا متطرفة.

ثم يمكننا أن نفعل الشيء نفسه مع سعر البيع.

Q1 = df['sale_price'].quantile(0.25)
Q3 = df['sale_price'].quantile(0.75)
IQR = Q3 - Q1
df = df[~((df['sale_price'] (Q1 - 1.5 * IQR)) |(df['sale_price'] > (Q3 + 1.5 * IQR)))]

بالطبع، يمكنك القيام بذلك بطريقة أكثر إيجازًا باستخدام لحلقة.

for column in ['advertised_price', 'sale_price']: Q1 = df[column].quantile(0.25) Q3 = df[column].quantile(0.75) IQR = Q3 - Q1 df = df[~((df[column] (Q1 - 1.5 * IQR)) |(df[column] > (Q3 + 1.5 * IQR)))]

تتكرر الحلقة بين العمودين. لكل عمود، يقوم بحساب معدل الذكاء (IQR) ثم يقوم بإزالة الصفوف الموجودة في DataFrame.

يرجى ملاحظة أن هذه العملية تتم بشكل تسلسلي، أولاً بالنسبة للسعر المعلن ثم بالنسبة لسعر البيع. ونتيجة لذلك، يتم تعديل DataFrame في مكانه لكل عمود، ويمكن إزالة الصفوف نظرًا لكونها قيمة خارجية في أي من العمودين. ولذلك، قد تؤدي هذه العملية إلى عدد صفوف أقل مما لو تمت إزالة القيم المتطرفة للسعر المعلن وسعر البيع بشكل مستقل وتم دمج النتائج بعد ذلك.

في مثالنا، سيكون الناتج هو نفسه في كلتا الحالتين. لنرى كيف تغير مخطط الصندوق، نحتاج إلى رسمه مرة أخرى باستخدام نفس الكود السابق.

plt.figure(figsize=(10, 6))
sns.boxplot(data=df[['advertised_price', 'sale_price']])
plt.xlabel('Prices')
plt.ylabel('USD')
plt.ticklabel_format(style='plain', axis='y')
formatter = ticker.FuncFormatter(lambda x, p: format(x, ',.2f'))
plt.gca().yaxis.set_major_formatter(formatter)

وهنا الإخراج.

 

إتقان فن تنظيف البيانات في بايثون
 

يمكنك التدرب على حساب النسب المئوية في بايثون عن طريق حل سؤال مقابلة الجمعية العامة.

يعد تنظيف البيانات خطوة حاسمة في عملية تحليل البيانات. على الرغم من أن الأمر قد يستغرق وقتًا طويلاً، إلا أنه من الضروري التأكد من دقة نتائجك.

لحسن الحظ، فإن النظام البيئي الغني للمكتبات في بايثون يجعل هذه العملية أكثر قابلية للإدارة. لقد تعلمنا كيفية إزالة الصفوف والأعمدة غير الضرورية، وإعادة تنسيق البيانات، والتعامل مع القيم المفقودة والقيم المتطرفة. هذه هي الخطوات المعتادة التي يجب تنفيذها على معظم البيانات. ومع ذلك، ستحتاج أيضًا في بعض الأحيان إلى ذلك الجمع بين عمودين في واحد, التحقق من البيانات الموجودة, تعيين تسميات لذلكالطرق أو تخلص من المساحات البيضاء.

كل هذا هو تنظيف البيانات، لأنه يسمح لك بتحويل بيانات العالم الحقيقي الفوضوية إلى مجموعة بيانات جيدة التنظيم يمكنك تحليلها بثقة. ما عليك سوى مقارنة مجموعة البيانات التي بدأناها بتلك التي انتهينا بها.

إذا كنت لا ترى الرضا في هذه النتيجة والبيانات النظيفة لا تجعلك متحمسًا بشكل غريب، فماذا تفعل بحق الجحيم في علم البيانات!؟
 

نيت روزيدي هو عالم بيانات وفي استراتيجية المنتج. وهو أيضًا أستاذ مساعد يقوم بتدريس التحليلات ، وهو مؤسس ستراتا سكراتش، وهي منصة تساعد علماء البيانات على الاستعداد لمقابلاتهم مع أسئلة مقابلة حقيقية من الشركات الكبرى. تواصل معه تويتر: StrataScratch or لينكدين:.

الطابع الزمني:

اكثر من KD nuggets