Τι είναι ένα αρχείο CSV;
Ένα αρχείο CSV είναι ένας τύπος αρχείου απλού κειμένου που χρησιμοποιεί συγκεκριμένη δομή για να οργανώσει δεδομένα πίνακα. Το CSV είναι μια κοινή μορφή ανταλλαγής δεδομένων, καθώς είναι συμπαγής, απλή και γενική. Πολλές διαδικτυακές υπηρεσίες επιτρέπουν στους χρήστες να εξάγουν πίνακες δεδομένων από τον ιστότοπο σε ένα αρχείο CSV. Τα αρχεία CSV θα ανοίξουν στο Excel και σχεδόν όλες οι βάσεις δεδομένων έχουν ένα εργαλείο που επιτρέπει την εισαγωγή από αρχείο CSV. Η τυπική μορφή καθορίζεται από δεδομένα γραμμών και στηλών. Επιπλέον, κάθε σειρά τερματίζεται από μια νέα γραμμή για να ξεκινήσει η επόμενη σειρά. Επίσης μέσα στη σειρά, κάθε στήλη διαχωρίζεται με κόμμα.
Σε αυτό το σεμινάριο, θα μάθετε:
- Τι είναι ένα αρχείο CSV;
- Αρχείο δείγματος CSV.
- Ενότητα Python CSV
- Λειτουργίες μονάδας CSV
- Ανάγνωση αρχείων CSV
- Διαβάζοντας ως λεξικό
- Γράφοντας σε αρχεία CSV
- Ανάγνωση αρχείων CSV με Pandas
- Γράφοντας σε αρχεία CSV με Pandas
Αρχείο δείγματος CSV.
Τα δεδομένα με τη μορφή πινάκων ονομάζονται επίσης CSV (τιμές διαχωρισμένες με κόμμα) - κυριολεκτικά «τιμές διαχωρισμένες με κόμμα». Αυτή είναι μια μορφή κειμένου που προορίζεται για την παρουσίαση δεδομένων πίνακα. Κάθε γραμμή του αρχείου είναι μια γραμμή του πίνακα. Οι τιμές των μεμονωμένων στηλών χωρίζονται με ένα σύμβολο διαχωριστή - ένα κόμμα (,), ένα ερωτηματικό (;) ή άλλο σύμβολο. Μπορείτε να διαβάσετε και να επεξεργαστείτε εύκολα το CSV από την Python.
Εξετάστε το παρακάτω Tabe
Δεδομένα πίνακα
Γλώσσα προγραμματισμού | Σχεδιάστηκε από | Εμφανίστηκε | Επέκταση |
Πύθων | Γκουίντο βαν Ρόσουμ | 1991 | .py |
Ιάβα | Τζέιμς Γκόσλινγκ | 1995 | .Ιάβα |
C ++ | Bjarne Stroustrup | 1983 | .cpp |
Μπορείτε να αναπαραστήσετε αυτόν τον πίνακα στο csv όπως παρακάτω.
Δεδομένα CSV
Γλώσσα προγραμματισμού, Σχεδιασμένη από, Εμφανίστηκε, Επέκταση
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
Για να διαβάσετε δεδομένα από αρχεία CSV, πρέπει να χρησιμοποιήσετε τη λειτουργία ανάγνωσης για να δημιουργήσετε ένα αντικείμενο αναγνώστη.
Η λειτουργία αναγνώστη έχει αναπτυχθεί για να τραβήξει κάθε σειρά του αρχείου και να δημιουργήσει μια λίστα με όλες τις στήλες. Στη συνέχεια, πρέπει να επιλέξετε τη στήλη για την οποία θέλετε τα μεταβλητά δεδομένα.
Ακούγεται πολύ πιο περίπλοκο από ό, τι είναι. Ας ρίξουμε μια ματιά σε αυτό το παράδειγμα και θα ανακαλύψουμε ότι η εργασία με το αρχείο csv δεν είναι τόσο δύσκολη.
#import necessary modulesimport csvwith open('X:\data.csv','rt')as f:data = csv.reader(f)for row in data:print(row)
Όταν εκτελείτε το παραπάνω πρόγραμμα, η έξοδος θα είναι:
['Programming language; Designed by; Appeared; Extension']['Python; Guido van Rossum; 1991; .py']['Java; James Gosling; 1995; .java']['C++; Bjarne Stroustrup;1983;.cpp']
Πώς να διαβάσετε ένα CSV ως λεξικό
Μπορείτε επίσης να χρησιμοποιήσετε το DictReader για να διαβάσετε αρχεία CSV. Τα αποτελέσματα ερμηνεύονται ως λεξικό όπου η γραμμή κεφαλίδας είναι το κλειδί και άλλες σειρές είναι τιμές.
Εξετάστε τον ακόλουθο κώδικα
#import necessary modulesimport csvreader = 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, θα πρέπει να χρησιμοποιήσετε τη συνάρτηση writer (). Για να επαναλάβετε τα δεδομένα πάνω από τις γραμμές (γραμμές), πρέπει να χρησιμοποιήσετε τη συνάρτηση authorow ().
Εξετάστε το ακόλουθο παράδειγμα. Γράφουμε δεδομένα σε ένα αρχείο "writeData.csv" όπου ο οριοθέτης είναι απόστροφος.
#import necessary modulesimport csvwith open('X:\writeData.csv', mode='w') as file:writer = csv.writer(file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)#way to write to csv filewriter.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, ExtensionPython, Guido van Rossum, 1991, .pyJava, James Gosling, 1995, .javaC++, Bjarne Stroustrup,1983,.cpp
Ανάγνωση αρχείων CSV με Pandas
Το Pandas είναι μια βιβλιοθήκη ανοιχτού κώδικα που σας επιτρέπει να κάνετε χειρισμό δεδομένων στο Python. Τα Pandas παρέχουν έναν εύκολο τρόπο δημιουργίας, χειρισμού και διαγραφής των δεδομένων.
Πρέπει να εγκαταστήσετε τη βιβλιοθήκη pandas με την εντολή pip install pandas
. Στα παράθυρα, θα εκτελέσετε αυτήν την εντολή στη γραμμή εντολών ενώ βρίσκεστε στο Linux στο τερματικό.
Η ανάγνωση του CSV σε pandas DataFrame είναι πολύ γρήγορη και εύκολη:
#import necessary modulesimport pandasresult = pandas.read_csv('X:\data.csv')print(result)
Αποτέλεσμα:
Programming language, Designed by, Appeared, Extension0 Python, Guido van Rossum, 1991, .py1 Java, James Gosling, 1995, .java2 C++, Bjarne Stroustrup,1983,.cpp
Πολύ χρήσιμη βιβλιοθήκη. Σε μόλις τρεις γραμμές κώδικα έχετε το ίδιο αποτέλεσμα όπως νωρίτερα. Οι Pandas γνωρίζουν ότι η πρώτη γραμμή του CSV περιείχε ονόματα στηλών και θα τα χρησιμοποιήσει αυτόματα.
Γράφοντας σε αρχεία CSV με Pandas
Η εγγραφή σε αρχείο CSV με Pandas είναι τόσο εύκολη όσο η ανάγνωση. Εδώ μπορείτε να το πείσετε. Πρώτα πρέπει να δημιουργήσετε το DataFrame με βάση τον ακόλουθο κώδικα.
from pandas import DataFrameC = {'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 storedprint (df)
Εδώ είναι η έξοδος
Programming language, Designed by, Appeared, Extension0 Python, Guido van Rossum, 1991, .py1 Java, James Gosling, 1995, .java2 C++, Bjarne Stroustrup,1983,.cpp
Και το αρχείο CSV δημιουργείται στην καθορισμένη θέση.
συμπέρασμα
Έτσι, τώρα ξέρετε πώς χρησιμοποιείτε τη μέθοδο «csv» και επίσης διαβάζετε και γράφετε δεδομένα σε μορφή CSV. Τα αρχεία CSV χρησιμοποιούνται ευρέως σε εφαρμογές λογισμικού, επειδή είναι ευανάγνωστα και διαχειρίζονται, και το μικρό τους μέγεθος τα καθιστά σχετικά γρήγορα για επεξεργασία και μετάδοση.
Η μονάδα csv παρέχει διάφορες λειτουργίες και τάξεις που σας επιτρέπουν να διαβάζετε και να γράφετε εύκολα. Μπορείτε να δείτε την επίσημη τεκμηρίωση Python και να βρείτε μερικές πιο ενδιαφέρουσες συμβουλές και ενότητες. Το CSV είναι ο καλύτερος τρόπος για αποθήκευση, προβολή και αποστολή δεδομένων. Στην πραγματικότητα, δεν είναι τόσο δύσκολο να μάθεις όπως φαίνεται στην αρχή. Αλλά με λίγη πρακτική, θα το καταφέρετε.
Το Pandas είναι μια εξαιρετική εναλλακτική λύση για την ανάγνωση αρχείων CSV.
Επίσης, υπάρχουν και άλλοι τρόποι ανάλυσης αρχείων κειμένου με βιβλιοθήκες όπως ANTLR, PLY και PlyPlus. Μπορούν όλοι να χειριστούν τη βαριά ανάλυση ανάλυσης, και εάν ο απλός χειρισμός String δεν λειτουργεί, υπάρχουν κανονικές εκφράσεις που μπορείτε να χρησιμοποιήσετε