Hoe CSV-bestand in te lezen Python (Module, Panda's-voorbeelden)

⚡ Slimme samenvatting

Een CSV-bestand slaat tabelgegevens op als platte tekst, waarbij kolommen worden gescheiden door komma's en rijen door nieuwe regels. Hier leer je hoe je CSV-bestanden kunt lezen en schrijven. Python gebruikmakend van de ingebouwde csv-module en de pandas-bibliotheek.

  • 📄 Wat het is: Een CSV-bestand slaat tabelgegevens op als door komma's gescheiden platte tekst.
  • ???? csv.reader: csv.reader() leest rijen uit een CSV-bestand als lijsten.
  • 📚 DictReader: csv.DictReader() leest elke rij in een geordend woordenboek.
  • ✍️ csv.writer: csv.writer() en writerow() schrijven rijen naar een CSV-bestand.
  • 🐼 Panda's: pandas.read_csv() en to_csv() lezen en schrijven CSV-bestanden in één regel code.
  • 🤖 AI-ondersteuning: AI-tools zoals Copilot genereren direct code voor het lezen en schrijven van CSV-bestanden.

CSV-bestand lezen in Python

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.

CSV-gegevens downloaden

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')])

Lees een CSV-bestand in een woordenboek

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

CSV-bestand schrijven Python

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.

Schrijf een CSV-bestand met Panda's

Veelgestelde vragen

Een CSV-bestand (comma-separated values) is een tekstbestand waarin tabelgegevens worden opgeslagen. Elke regel is een rij en de waarden in elke kolom worden gescheiden door komma's.

Importeer de csv-module, open het bestand en geef het door aan csv.reader() om de rijen als lijsten te doorlopen. Als alternatief kun je csv.DictReader() gebruiken om elke rij als een dictionary te lezen.

Open een bestand in schrijfmodus, maak een csv.writer() aan en roep writerow() aan voor elke rij of writerows() voor meerdere rijen. De writer regelt de aanhalingstekens en scheidingstekens voor je.

csv.DictReader() leest een CSV-bestand in geordende woordenboeken, waarbij de kopregel als sleutel wordt gebruikt. Hierdoor kunt u elke waarde benaderen via de kolomnaam in plaats van via de index.

Roep pandas.read_csv('file.csv') aan, waarmee het CSV-bestand in één regel in een DataFrame wordt geladen. Pandas gebruikt automatisch de eerste rij als kolomkoppen.

AI-assistenten zoals GitHub Copilot vullen automatisch csv- en pandas-aanroepen aan, genereren lees- en schrijflussen en suggereren de juiste scheidingsteken- of aanhalingstekenoptie op basis van een korte beschrijving.

Ja. AI-gestuurde tools kunnen het parseren, opschonen en converteren van CSV-gegevens automatiseren, pandas-pipelines genereren en foutafhandeling toevoegen voor onjuist opgemaakte rijen of ontbrekende kolommen.

Gebruik de ingebouwde csv-module voor eenvoudig en efficiënt lezen en schrijven. Kies pandas wanneer u grote CSV-datasets efficiënt wilt filteren, transformeren of analyseren.

Vat dit bericht samen met: