Data Wrangling

تحميل بيانات النصوص بكفاءة في Pandas لا تترجم فقط – بل قم بالتكييف. فكر في كيفية تغير عادات البحث، ونية الكلمات المفتاحية، وحتى ما يُعتبر عنوانًا جذابًا من ثقافة إلى أخرى.

Spread the love

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

محتويات الجدول

1. تحميل ملفات CSV والملفات المحددة باستخدام read_csv()

تُعد دالة read_csv() هي الدالة الرئيسية لاستيراد ملفات القيم المنفصلة بالفاصلة (CSV). تمتد قابليتها للتكيف إلى ملفات أخرى محددة من خلال تحديد الفاصل باستخدام معلمة sep أو delimiter. دعونا نستعرض إمكانياتها:


import pandas as pd

# تحميل ملف CSV
df_csv = pd.read_csv("data.csv")
print(df_csv.head()) #استخدام head() لعرض الصفوف القليلة الأولى لتحسين إمكانية القراءة

# تحميل ملف مفصول بتبويبات
df_tsv = pd.read_csv("data.tsv", sep="t")
print(df_tsv.head())

# تحميل ملف به فاصل أنبوب
df_pipe = pd.read_csv("data.txt", delimiter="|")
print(df_pipe.head())

إلى جانب التحميل الأساسي، توفر read_csv() معلمات قوية للتحكم الدقيق:

  • sep أو delimiter: يحدد الفاصل (الافتراضي هو ‘,’).
  • header: رقم(أرقام) الصفوف لأسماء الأعمدة (الافتراضي هو 0، استخدم None لعدم وجود رأس).
  • names: قائمة بأسماء الأعمدة إذا لم يكن هناك صف رأس.
  • index_col: العمود الذي يجب استخدامه كمؤشر لجدول البيانات.
  • usecols: تحديد أعمدة محددة لتحسين الأداء.
  • nrows: قراءة أول n صفوف فقط لمعاينة الملفات الكبيرة.
  • skiprows: تخطي الصفوف المحددة في البداية.
  • encoding: تحديد ترميز الملف (مثل، ‘utf-8’، ‘latin-1’).
  • dtype: تحديد أنواع البيانات للأعمدة
  • comment: حرف يدل على أسطر التعليقات

2. معالجة ملفات العرض الثابت باستخدام read_fwf()

تُعد طريقة read_fwf() (قراءة الملفات ذات العرض الثابت) ضرورية للملفات التي تُعرّف فيها الأعمدة بعرضها الثابت، وليس بالفاصلات. هذا شائع في الأنظمة القديمة.


import pandas as pd

# تحديد عرض الأعمدة
colspecs = [(0, 10), (10, 20), (20, 30)]  # الأعمدة بعرض 10، 10، و 10 أحرف

# تحميل الملف ذي العرض الثابت
df_fwf = pd.read_fwf("data_fwf.txt", colspecs=colspecs, header=None)
df_fwf.columns = ['Column1', 'Column2', 'Column3']

print(df_fwf.head())

تشمل المعلمات الرئيسية لـ read_fwf() ما يلي:

  • colspecs: قائمة من الأزواج التي تُحدد مواضع بداية ونهاية الأعمدة.
  • widths: بديل لـ colspecs، يوفر قائمة بعرض الأعمدة.
  • header: رقم الصف للرأس (مثل read_csv()).
  • names: يوفر أسماء الأعمدة (مثل read_csv()).

3. استخدام read_table() لملفات مفصولة بتبويبات وملفات محددة أخرى

read_table() مكافئ إلى حد كبير لـ read_csv()، مع افتراض فاصل تبويب (t) افتراضيًا. وهو مثالي لملفات مفصولة بتبويبات (TSV) ولكنه يمكنه معالجة فاصلات أخرى من خلال تحديد معلمة sep. وهو يشارك جميع معلمات read_csv()، مما يوفر مرونة مماثلة.


import pandas as pd

# تحميل ملف مفصول بتبويبات
df_table = pd.read_table("data.tsv")
print(df_table.head())

# تحديد فاصل مختلف
df_table_custom = pd.read_table("data.txt", sep="|")
print(df_table_custom.head())

يوفر Pandas أدوات قوية لاستيراد البيانات بكفاءة من تنسيقات ملفات نصوص متنوعة. يعتمد اختيار الطريقة الصحيحة على بنية بياناتك. تذكر معالجة مشاكل الترميز ومعالجة القيم المفقودة بعد التحميل.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *