Hoe CSV-bestand in te lezen Python (Module, Panda's-voorbeelden)
Wat is een CSV-bestand?
A CSV-bestand is een eenvoudig type tekstbestand dat een specifieke structuur gebruikt om tabelgegevens te ordenen. Het standaardformaat van een CSV-bestand wordt gedefinieerd door rij- en kolomgegevens waarbij een nieuwe regel elke rij beëindigt om met de volgende rij te beginnen, en elke kolom wordt gescheiden door een komma binnen de rij.
CSV is een veelgebruikt formaat voor gegevensuitwisseling omdat het compact, eenvoudig en algemeen is. Bij veel onlinediensten kunnen hun gebruikers tabelgegevens van de website naar een CSV-bestand exporteren. CSV-bestanden worden geopend in Excel, en bijna alle databases hebben een tool waarmee import uit CSV-bestanden mogelijk is.
CSV-voorbeeldbestand
Gegevens in de vorm van tabellen worden ook wel CSV (door komma's gescheiden waarden) genoemd – letterlijk 'door komma's gescheiden waarden'. Dit is een tekstformaat bedoeld voor de presentatie van tabelgegevens. Elke regel van het bestand is één regel van de tabel. De waarden van individuele kolommen worden gescheiden door een scheidingsteken: een komma (,), een puntkomma (;) of een ander symbool. CSV kan eenvoudig worden gelezen en verwerkt door Python.
Beschouw de volgende tabel
Tabelgegevens
Programmeertaal | Designed by | verscheen | Verlengstuk |
---|---|---|---|
Python | Guido van Rossum | 1991 | py |
Java | James Goslin | 1995 | .Java |
C++ | Bjarne Stroustrup | 1983 | .cpp |
U kunt deze tabel in csv weergeven, zoals hieronder.
CSV-gegevens
Programmeertaal, Ontworpen door, Verscheen, Extensie
Python, Guido van Rossum, 1991, .py
Java, James Gosling, 1995, .java
C++, Bjarne Stroustrup,1983,.cpp
Zoals je kunt zien is elke rij een nieuwe regel en is elke kolom gescheiden door een komma. Dit is een voorbeeld van hoe een CSV-bestand eruit ziet.
Python CSV-module
Python biedt een CSV-module voor het verwerken van CSV-bestanden. Om gegevens te lezen/schrijven, moet u de rijen van het CSV doorlopen. U moet de splitsmethode gebruiken om gegevens uit opgegeven kolommen te halen.
CSV-modulefuncties
In de documentatie van de CSV-module vindt u de volgende functies:
- csv.field_size_limit – retourneert maximale veldgrootte
- csv.get_dialect – haal het dialect op dat aan de naam is gekoppeld
- csv.list_dialects – toon alle geregistreerde dialecten
- csv.reader – lees gegevens uit een csv-bestand
- csv.register_dialect – associeer dialect met naam
- csv.writer – schrijf gegevens naar een csv-bestand
- csv.unregister_dialect – verwijder het dialect dat is gekoppeld aan de naam van het dialectregister
- csv.QUOTE_ALL – Citeer alles, ongeacht het type.
- csv.QUOTE_MINIMAL – Citeervelden met speciale tekens
- csv.QUOTE_NONNUMERIC – Citeer alle velden die geen getallenwaarde hebben
- csv.QUOTE_NONE – Citeer niets in de uitvoer
In deze zelfstudie gaan we ons alleen concentreren op de lees- en schrijverfuncties waarmee u de gegevens in een CSV-bestand kunt bewerken, wijzigen en manipuleren.
Hoe een CSV-bestand in te lezen Python
Hieronder vindt u de stappen om het CSV-bestand in te lezen Python.
Stap 1) Om gegevens uit CSV-bestanden te lezen, moet u de leesfunctie gebruiken om een leesobject te genereren.
De leesfunctie is ontwikkeld om van elke rij van het bestand een lijst van alle kolommen te maken. Vervolgens moet u de kolom kiezen waarvoor u de variabele gegevens wilt hebben.
Het klinkt veel ingewikkelder dan het is. Laten we dit eens bekijken Python code om het CSV-bestand te lezen, en we zullen ontdekken dat het werken met een CSV-bestand niet zo moeilijk is.
#import necessary modules import csv with open('X:\data.csv','rt')as f: data = csv.reader(f) for row in data: print(row)
Stap 2) Wanneer u het bovenstaande programma uitvoert, is de uitvoer:
['Programming language; Designed by; Appeared; Extension'] ['Python; Guido van Rossum; 1991; .py'] ['Java; James Gosling; 1995; .java'] ['C++; Bjarne Stroustrup;1983;.cpp']
Hoe u een CSV-bestand in een woordenboek leest Python
U kunt DictReader ook gebruiken om CSV-bestanden te lezen. De resultaten worden geïnterpreteerd als een woordenboek waarbij de koprij de sleutel is en andere rijen waarden.
Beschouw de volgende code
#import necessary modules import csv reader = csv.DictReader(open("file2.csv")) for raw in reader: print(raw)
Het resultaat van deze code is:
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')])
En deze manier om gegevens uit een CSV-bestand te lezen is veel eenvoudiger dan de eerdere methode. Dit is echter niet de beste manier om gegevens te lezen.
Hoe CSV-bestand in te schrijven Python
Hier leest u hoe u een CSV-bestand schrijft Python:
Wanneer u een set gegevens heeft die u in een CSV-bestand wilt opslaan, moet u de writer()-functie gebruiken. Om de gegevens over de rijen (lijnen) te herhalen, moet u de functie writerw () gebruiken.
Overweeg het volgende voorbeeld. We schrijven data naar een bestand “writeData.csv” waarbij het scheidingsteken een apostrof is.
#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'])
Resultaat in csv-bestand is:
Programming language, Designed by, Appeared, Extension Python, Guido van Rossum, 1991, .py Java, James Gosling, 1995, .java C++, Bjarne Stroustrup,1983,.cpp
Lees CSV-bestand met Pandas
Pandas is een opensourcebibliotheek waarmee u CSV kunt importeren Python en gegevensmanipulatie uitvoeren. Panda's bieden een gemakkelijke manier om gegevens aan te maken, te manipuleren en te verwijderen.
U moet de pandas-bibliotheek installeren met de opdracht pip install pandas . In Windows, voert u deze opdracht uit in de opdrachtprompt terwijl u zich in Linux in de terminal bevindt.
Het lezen van de CSV in een Pandas DataFrame gaat heel snel en eenvoudig:
#import necessary modules import pandas result = pandas.read_csv('X:\data.csv') print(result)
resultaat van de lees CSV Panda's voorbeeld:
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
Zeer nuttige bibliotheek. In slechts drie regels code krijg je hetzelfde resultaat als eerder. Panda's weten dat de eerste regel van het CSV-bestand kolomnamen bevat en zullen deze automatisch gebruiken.
Schrijf een CSV-bestand met Panda's
Schrijven naar CSV-bestand met Pandas is net zo makkelijk als lezen. Hier kunt u overtuigen. Eerst moet u DataFrame maken op basis van het volgende Python schrijven naar CSV-code.
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)
Hier is de uitvoer
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
En het CSV-bestand wordt op de opgegeven locatie gemaakt.
Conclusie
Dus nu weet u hoe u de methode 'csv' kunt gebruiken en ook hoe u gegevens in CSV-formaat kunt lezen en schrijven. CSV-bestanden worden veel gebruikt in softwaretoepassingen omdat ze gemakkelijk te lezen en beheren zijn, en hun kleine formaat maakt ze relatief snel voor verwerking en verzending.
De csv-module biedt verschillende functies en klassen waarmee u gemakkelijk kunt lezen en schrijven. Je kunt naar de ambtenaar kijken Python documentatie en vind nog meer interessante tips en modules. CSV is de beste manier om gegevens op te slaan, te bekijken en te verzenden. Eigenlijk is het niet zo moeilijk om te leren als het in het begin lijkt. Maar met een beetje oefening zul je het onder de knie krijgen.
Pandas is een geweldig alternatief om CSV-bestanden te lezen.
Er zijn ook andere manieren om tekstbestanden te parseren met bibliotheken zoals ANTLR, PLY en PlyPlus. Ze kunnen allemaal zware parseerbewerkingen aan, en als eenvoudige String-manipulatie niet werkt, zijn er reguliere expressies die u kunt gebruiken.