كيفية قراءة ملف CSV في Python (الوحدة، أمثلة الباندا)

⚡ ملخص ذكي

يخزن ملف CSV البيانات الجدولية كنص عادي، حيث تفصل الفواصل بين الأعمدة والأسطر الجديدة بين الصفوف. ستتعلم هنا كيفية قراءة وكتابة ملفات CSV. Python باستخدام وحدة csv المدمجة ومكتبة pandas.

  • 📄 ما هو : يخزن ملف CSV البيانات الجدولية كنص عادي مفصول بفواصل.
  • ؟؟؟؟ قارئ ملفات CSV: تقوم الدالة csv.reader() بقراءة الصفوف من ملف CSV كقوائم.
  • 📚 قارئ القاموس: يقوم csv.DictReader() بقراءة كل صف في قاموس مرتب.
  • ✍️ csv.writer: تقوم الدالتان csv.writer() و writerow() بكتابة الصفوف إلى ملف CSV.
  • 🐼 الباندا: تقوم الدالتان pandas.read_csv() و to_csv() بقراءة وكتابة ملفات CSV في سطر واحد.
  • 🤖 مساعدة الذكاء الاصطناعي: أدوات الذكاء الاصطناعي مثل Copilot تقوم بإنشاء وقراءة وكتابة التعليمات البرمجية لملفات CSV على الفور.

قراءة ملف CSV في Python

ما هو ملف CSV؟

A ملف CSV هو نوع بسيط من الملفات النصية العادية التي تستخدم بنية محددة لترتيب البيانات الجدولية. يتم تحديد التنسيق القياسي لملف CSV من خلال بيانات الصفوف والأعمدة حيث ينهي سطر جديد كل صف لبدء الصف التالي، ويتم فصل كل عمود بفاصلة داخل الصف.

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

ملف عينة CSV

تسمى البيانات الموجودة في شكل جداول أيضًا بـ CSV (قيم مفصولة بفواصل) - حرفيًا "قيم مفصولة بفواصل". هذا تنسيق نصي مخصص لعرض البيانات الجدولية. كل سطر من الملف هو سطر واحد من الجدول. يتم فصل قيم الأعمدة الفردية برمز فاصل - فاصلة (،) أو فاصلة منقوطة (؛) أو رمز آخر. يمكن قراءة ملف CSV ومعالجته بسهولة Python.

ضع في اعتبارك الجدول التالي

بيانات الجدول

لغة برمجة صمم بواسطة ظهر تمديد
Python غيدو فان روسوم 1991 .py
Java جيمس جوسلينج 1995 جافا
C++ بيارني ستيرستروب 1983 .CPP

يمكنك تمثيل هذا الجدول في ملف CSV على النحو التالي.

بيانات CSV

لغة البرمجة، تصميم، ظهور، امتداد

Python، جويدو فان روسوم، 1991، .py

Java، جيمس جوسلينج، 1995، .java

C++, بيارن ستروستروب,1983,.cpp

كما ترون، كل صف هو سطر جديد، ويتم فصل كل عمود بفاصلة. هذا مثال على كيفية ظهور ملف CSV.

تنزيل بيانات CSV

Python وحدة CSV

Python يوفر وحدة CSV للتعامل مع ملفات CSV. لقراءة/كتابة البيانات، تحتاج إلى التكرار خلال صفوف ملف CSV. تحتاج إلى استخدام طريقة التقسيم للحصول على البيانات من أعمدة محددة.

وظائف وحدة CSV

يمكنك العثور على الوظائف التالية في وثائق وحدة CSV:

  • csv.field_size_limit – إرجاع الحد الأقصى لحجم الحقل
  • csv.get_dialect – احصل على اللهجة المرتبطة بالاسم
  • csv.list_dialects - إظهار جميع اللهجات المسجلة
  • csv.reader – قراءة البيانات من ملف CSV
  • csv.register_dialect – ربط اللهجة بالاسم
  • csv.writer – كتابة البيانات إلى ملف CSV
  • csv.unregister_dialect - حذف اللهجة المرتبطة باسم سجل اللهجة
  • csv.QUOTE_ALL - اقتبس كل شيء، بغض النظر عن نوعه.
  • csv.QUOTE_MINIMAL - حقول الاقتباس بأحرف خاصة
  • csv.QUOTE_NONNUMERIC - اقتبس جميع الحقول التي لا تحتوي على قيم رقمية
  • csv.QUOTE_NONE - لا تقتبس أي شيء في الإخراج

في هذا البرنامج التعليمي، سنركز فقط على وظائف القارئ والكاتب التي تسمح لك بتحرير البيانات وتعديلها ومعالجتها في ملف CSV.

كيفية قراءة ملف CSV في Python

فيما يلي خطوات قراءة ملف CSV فيه Python.

الخطوة 1) لقراءة البيانات من ملفات CSV، يجب عليك استخدام وظيفة القارئ لإنشاء كائن قارئ.

تم تطوير وظيفة القارئ لأخذ كل صف من الملف وإنشاء قائمة بجميع الأعمدة. ثم عليك اختيار العمود الذي تريد بيانات المتغير له.

يبدو الأمر أكثر تعقيدًا مما هو عليه الآن. دعونا نلقي نظرة على هذا Python كود لقراءة ملف CSV، وسنكتشف أن العمل مع ملف CSV ليس بالأمر الصعب.

#import necessary modules
import csv
with open('X:\data.csv','rt')as f:
  data = csv.reader(f)
  for row in data:
        print(row)

الخطوة 2) عند تنفيذ البرنامج أعلاه ستكون النتيجة:

['Programming language; Designed by; Appeared; Extension']
['Python; Guido van Rossum; 1991; .py']
['Java; James Gosling; 1995; .java']
['C++; Bjarne Stroustrup;1983;.cpp']

كيفية قراءة ملف CSV في قاموس في Python

يمكنك أيضًا استخدام DictReader لقراءة ملفات CSV. يتم تفسير النتائج كقاموس حيث يكون صف الرأس هو المفتاح، والصفوف الأخرى هي القيم.

ضع في اعتبارك الكود التالي

#import necessary modules
import csv

reader = csv.DictReader(open("file2.csv"))
for raw in reader:
    print(raw)

نتيجة هذا الرمز هي:

OrderedDict([('Programming language', 'Python'), ('Designed by', 'Guido van Rossum'), (' Appeared', ' 1991'), (' Extension', ' .py')])
OrderedDict([('Programming language', 'Java'), ('Designed by', 'James Gosling'), (' Appeared', ' 1995'), (' Extension', ' .java')])
OrderedDict([('Programming language', 'C++'), ('Designed by', ' Bjarne Stroustrup'), (' Appeared', ' 1985'), (' Extension', ' .cpp')])

قراءة ملف CSV في القاموس

وهذه الطريقة لقراءة البيانات من ملف CSV أسهل بكثير من الطريقة السابقة. ومع ذلك، فهذه ليست الطريقة الأفضل لقراءة البيانات.

كيفية كتابة ملف CSV في Python

إليك كيفية كتابة ملف CSV فيه Python:

عندما يكون لديك مجموعة من البيانات التي ترغب في تخزينها في ملف CSV، عليك استخدام وظيفة الكاتب (). لتكرار البيانات عبر الصفوف (السطور)، عليك استخدام الدالة writerow().

فكر في المثال التالي. نكتب البيانات في ملف "writeData.csv" حيث يكون الفاصل عبارة عن علامة اقتباس.

#import necessary modules
import csv

with open('X:\writeData.csv', mode='w') as file:
    writer = csv.writer(file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)

    #way to write to csv file
    writer.writerow(['Programming language', 'Designed by', 'Appeared', 'Extension'])
    writer.writerow(['Python', 'Guido van Rossum', '1991', '.py'])
    writer.writerow(['Java', 'James Gosling', '1995', '.java'])
    writer.writerow(['C++', 'Bjarne Stroustrup', '1985', '.cpp'])

النتيجة في ملف CSV هي:

Programming language, Designed by, Appeared, Extension 
Python, Guido van Rossum, 1991, .py
Java, James Gosling, 1995, .java
C++, Bjarne Stroustrup,1983,.cpp

اكتب ملف CSV فيه Python

قراءة ملف CSV باستخدام Pandas

Pandas هي مكتبة مفتوحة المصدر تسمح لك باستيراد ملف CSV فيها Python وتنفيذ معالجة البيانات. توفر الباندا طريقة سهلة لإنشاء البيانات ومعالجتها وحذفها.

يجب عليك تثبيت مكتبة الباندا باستخدام الأمر pip install pandas . في Windows، سوف تقوم بتنفيذ هذا الأمر في موجه الأوامر أثناء وجودك في Linux في المحطة الطرفية.

تعد قراءة ملف CSV في Pandas DataFrame أمرًا سريعًا وسهلاً للغاية:

#import necessary modules
import pandas
result = pandas.read_csv('X:\data.csv')
print(result)

نتيجة قراءة CSV الباندا مثال:

Programming language, Designed by, Appeared, Extension 
0    Python, Guido van Rossum, 1991, .py
1    Java, James Gosling, 1995, .java
2    C++, Bjarne Stroustrup,1983,.cpp

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

اكتب ملف CSV باستخدام Pandas

إن الكتابة إلى ملف CSV باستخدام Pandas أمر سهل مثل القراءة. هنا يمكنك الإقناع بذلك. أولاً، يجب عليك إنشاء إطار بيانات بناءً على ما يلي Python الكتابة إلى رمز CSV.

from pandas import DataFrame
C = {'Programming language': ['Python','Java', 'C++'],
        'Designed by': ['Guido van Rossum', 'James Gosling', 'Bjarne Stroustrup'],
        'Appeared': ['1991', '1995', '1985'],
        'Extension': ['.py', '.java', '.cpp'],
    }
df = DataFrame(C, columns= ['Programming language', 'Designed by', 'Appeared', 'Extension'])
export_csv = df.to_csv (r'X:\pandaresult.csv', index = None, header=True) # here you have to write path, where result file will be stored
print (df)

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

Programming language, Designed by, Appeared, Extension
0    Python, Guido van Rossum, 1991, .py
1    Java, James Gosling, 1995, .java
2    C++, Bjarne Stroustrup,1983,.cpp

ويتم إنشاء ملف CSV في الموقع المحدد.

اكتب ملف CSV باستخدام Pandas

الأسئلة الشائعة

ملف CSV (قيم مفصولة بفواصل) هو ملف نصي عادي يخزن بيانات جدولية. كل سطر يمثل صفًا، وتفصل الفواصل القيم في كل عمود.

استورد وحدة csv، وافتح الملف، ثم مرره إلى csv.reader() للتكرار على الصفوف كقوائم. أو بدلاً من ذلك، استخدم csv.DictReader() لقراءة كل صف كقاموس.

افتح ملفًا في وضع الكتابة، وأنشئ كائنًا من نوع csv.writer()، ثم استدعِ الدالة writerow() لكل صف أو writerows() لعدة صفوف. يتولى الكائن الكاتب عملية الاقتباس والفواصل نيابةً عنك.

تقوم الدالة csv.DictReader() بقراءة ملف CSV وتحويله إلى قواميس مرتبة، باستخدام صف العناوين كمفاتيح. يتيح لك هذا الوصول إلى كل قيمة عن طريق اسم العمود بدلاً من الفهرس.

استدعِ الدالة pandas.read_csv('file.csv')، التي تُحمّل ملف CSV إلى DataFrame في سطر واحد. وتستخدم Pandas تلقائيًا الصف الأول كعناوين للأعمدة.

تقوم المساعدات الذكية مثل GitHub Copilot بإكمال استدعاءات csv و pandas تلقائيًا، وإنشاء حلقات القراءة والكتابة، واقتراح المحدد الصحيح أو خيار الاقتباس من وصف قصير.

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

استخدم وحدة csv المدمجة لقراءة وكتابة البيانات بسهولة وسرعة. اختر مكتبة Pandas عندما تحتاج إلى تصفية أو تحويل أو تحليل مجموعات بيانات CSV الكبيرة بكفاءة.

تلخيص هذه التدوينة بـ: