Πώς να διαβάσετε το αρχείο CSV Python (Ενότητα, Παραδείγματα Pandas)

⚡ Έξυπνη Σύνοψη

Ένα αρχείο CSV αποθηκεύει δεδομένα πίνακα ως απλό κείμενο, με κόμματα να διαχωρίζουν τις στήλες και νέες γραμμές να διαχωρίζουν τις γραμμές. Εδώ θα μάθετε να διαβάζετε και να γράφετε αρχεία CSV σε Python χρησιμοποιώντας την ενσωματωμένη ενότητα csv και τη βιβλιοθήκη pandas.

  • 📄 Αυτό που είναι: Ένα αρχείο CSV αποθηκεύει δεδομένα σε μορφή πίνακα ως απλό κείμενο διαχωρισμένο με κόμμα.
  • 📖 csv.reader: Η συνάρτηση csv.reader() διαβάζει γραμμές από ένα αρχείο CSV ως λίστες.
  • 📚 DictReader: Η συνάρτηση 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 Guido van Rossum 1991 .py
Java Τζέιμς Γκόσλινγκ 1995 . java
C++ Bjarne Stroustrup 1983 .cpp

Μπορείτε να αναπαραστήσετε αυτόν τον πίνακα σε csv όπως παρακάτω.

Δεδομένα CSV

Γλώσσα προγραμματισμού, Designed by, Appeared, Extension

Python, Guido van Rossum, 1991, .py

Java, James Gosling, 1995, .java

C++, Bjarne Stroustrup, 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, πρέπει να χρησιμοποιήσετε τη συνάρτηση writer(). Για να επαναλάβετε τα δεδομένα στις γραμμές(γραμμές), πρέπει να χρησιμοποιήσετε τη συνάρτηση 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 και να εκτελέσετε χειρισμό δεδομένων. Τα Panda παρέχουν έναν εύκολο τρόπο δημιουργίας, χειρισμού και διαγραφής δεδομένων.

Πρέπει να εγκαταστήσετε τη βιβλιοθήκη pandas με την εντολή pip install pandas . Σε Windows, θα εκτελέσετε αυτήν την εντολή στη γραμμή εντολών ενώ στο Linux στο τερματικό.

Η ανάγνωση του CSV σε pandas DataFrame είναι πολύ γρήγορη και εύκολη:

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

Αποτέλεσμα του διαβάστε το CSV Pandas παράδειγμα:

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 είναι τόσο εύκολη όσο η ανάγνωση. Εδώ μπορείτε να πείσετε σε αυτό. Πρώτα πρέπει να δημιουργήσετε DataFrame με βάση τα ακόλουθα 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() για κάθε γραμμή ή την εντολή writerow() για πολλές. Η εντολή writer χειρίζεται την εισαγωγή εισαγωγικών και τους οριοθέτες για εσάς.

Η συνάρτηση csv.DictReader() διαβάζει ένα αρχείο CSV σε ταξινομημένα λεξικά, χρησιμοποιώντας τη γραμμή κεφαλίδας ως κλειδιά. Αυτό σας επιτρέπει να έχετε πρόσβαση σε κάθε τιμή με βάση το όνομα της στήλης αντί για το ευρετήριο.

Καλέστε την εντολή pandas.read_csv('file.csv'), η οποία φορτώνει το CSV σε ένα DataFrame σε μία μόνο γραμμή. Το Pandas χρησιμοποιεί αυτόματα την πρώτη γραμμή ως κεφαλίδες στηλών.

Βοηθοί τεχνητής νοημοσύνης όπως το GitHub Copilot, συμπληρώνουν αυτόματα csv και κλήσεις pandas, δημιουργούν βρόχους ανάγνωσης και εγγραφής και προτείνουν την κατάλληλη επιλογή οριοθέτη ή παραθέματος από μια σύντομη περιγραφή.

Ναι. Τα εργαλεία με τεχνητή νοημοσύνη μπορούν να αυτοματοποιήσουν την ανάλυση, τον καθαρισμό και τη μετατροπή δεδομένων CSV, να δημιουργήσουν αγωγούς pandas και να προσθέσουν χειρισμό σφαλμάτων για λανθασμένες γραμμές ή στήλες που λείπουν.

Χρησιμοποιήστε την ενσωματωμένη ενότητα csv για απλή και εύκολη ανάγνωση και γραφή. Επιλέξτε pandas όταν χρειάζεται να φιλτράρετε, να μετασχηματίσετε ή να αναλύσετε αποτελεσματικά μεγάλα σύνολα δεδομένων CSV.

Συνοψίστε αυτήν την ανάρτηση με: