Pandas هي مكتبة Python قوية لمعالجة البيانات وتحليلها، وتحميل البيانات من ملفات النصوص مهمة أساسية. تستعرض هذه المقالة طرقًا فعالة لاستيراد البيانات من تنسيقات نصوص متنوعة إلى جداول بيانات Pandas DataFrames.
محتويات الجدول
- تحميل ملفات CSV والملفات المحددة باستخدام
read_csv()
- معالجة ملفات العرض الثابت باستخدام
read_fwf()
- استخدام
read_table()
لملفات مفصولة بتبويبات وملفات محددة أخرى
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 أدوات قوية لاستيراد البيانات بكفاءة من تنسيقات ملفات نصوص متنوعة. يعتمد اختيار الطريقة الصحيحة على بنية بياناتك. تذكر معالجة مشاكل الترميز ومعالجة القيم المفقودة بعد التحميل.