Kuinka lukea CSV-tiedosto sisään Python (Moduuli, esimerkkejä pandasta)

Mikä on CSV-tiedosto?

A CSV-tiedosto on yksinkertainen tekstitiedosto, joka käyttää tiettyä rakennetta taulukkotietojen järjestämiseen. CSV-tiedoston vakiomuoto määritellään rivi- ja saraketiedoilla, joissa rivinvaihto päättää jokaisen rivin aloittaakseen seuraavan rivin, ja jokainen sarake erotetaan pilkulla rivin sisällä.

CSV on yleinen tiedonsiirtomuoto, koska se on kompakti, yksinkertainen ja yleinen. Monet verkkopalvelut antavat käyttäjiensä viedä taulukkomuotoisia tietoja verkkosivustolta CSV-tiedostoon. CSV-tiedostot avautuvat Exceliin, ja lähes kaikissa tietokannoista on työkalu, joka mahdollistaa tuonnin CSV-tiedostoista.

CSV-mallitiedosto

Taulukoiden muodossa olevaa dataa kutsutaan myös CSV:ksi (comma separated values) – kirjaimellisesti "pilkuilla erotetuiksi arvoiksi". Tämä on tekstimuoto, joka on tarkoitettu taulukkotietojen esittämiseen. Jokainen tiedoston rivi on yksi taulukon rivi. Yksittäisten sarakkeiden arvot erotetaan erotinmerkillä – pilkulla (,), puolipisteellä (;) tai muulla symbolilla. CSV on helppo lukea ja käsitellä Python.

Harkitse seuraavaa taulukkoa

Taulukon tiedot

Ohjelmointikieli Suunnitellut ilmestyi Laajentaminen
Python Guido van Rossum 1991 .py
Java james goslin 1995 .Java
C++ Bjarne Stroustrup 1983 .cpp

Voit esittää tämän taulukon csv-muodossa kuten alla.

CSV-tiedot

Ohjelmointikieli, suunnittelija, ilmestynyt, laajennus

Python, Guido van Rossum, 1991, .py

Java, James Gosling, 1995, .java

C++, Bjarne Stroustrup, 1983,.cpp

Kuten näet, jokainen rivi on uusi rivi, ja jokainen sarake on erotettu pilkulla. Tämä on esimerkki siitä, miltä CSV-tiedosto näyttää.

Lataa CSV-tiedot

Python CSV-moduuli

Python tarjoaa CSV-moduulin CSV-tiedostojen käsittelemiseen. Jotta voit lukea/kirjoittaa tietoja, sinun on selattava CSV-tiedoston rivejä. Sinun on käytettävä split-menetelmää saadaksesi tietoja määritetyistä sarakkeista.

CSV-moduulin toiminnot

CSV-moduulin dokumentaatiosta löydät seuraavat toiminnot:

  • csv.field_size_limit – palauttaa kentän enimmäiskoon
  • csv.get_dialec – hanki murre, joka liittyy nimeen
  • csv.list_dialects – näyttää kaikki rekisteröidyt murteet
  • csv.reader – lue tiedot csv-tiedostosta
  • csv.register_dialec – yhdistä murre nimeen
  • csv.writer – kirjoita tiedot csv-tiedostoon
  • csv.unregister_dialec – poista murre, joka liittyy murrerekisterin nimeen
  • csv.QUOTE_ALL – Lainaa kaikkea tyypistä riippumatta.
  • csv.QUOTE_MINIMAL – Lainauskentät erikoismerkeillä
  • csv.QUOTE_NONNUMERIC – Lainaa kaikki kentät, jotka eivät ole numeroarvoja
  • csv.QUOTE_NONE – Älä lainaa mitään tulosteessa

Tässä opetusohjelmassa keskitymme vain luku- ja kirjoitustoimintoihin, joiden avulla voit muokata, muokata ja käsitellä CSV-tiedoston tietoja.

Kuinka lukea CSV-tiedosto sisään Python

Alla on ohjeita CSV-tiedoston lukemiseen Python.

Vaihe 1) Jos haluat lukea tietoja CSV-tiedostoista, sinun on käytettävä lukutoimintoa lukuobjektin luomiseen.

Lukijatoiminto on kehitetty ottamaan tiedoston jokainen rivi ja tekemään luettelon kaikista sarakkeista. Sitten sinun on valittava sarake, jolle haluat muuttujan tiedot.

Se kuulostaa paljon monimutkaisemmalta kuin se on. Katsotaanpa tätä Python koodia CSV-tiedoston lukemiseen, niin huomaamme, että csv-tiedoston käyttäminen ei ole niin vaikeaa.

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

Vaihe 2) Kun suoritat yllä olevan ohjelman, tulos on:

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

Kuinka lukea CSV-tiedosto sanakirjaksi Python

Voit myös käyttää DictReaderia CSV-tiedostojen lukemiseen. Tulokset tulkitaan sanakirjaksi, jossa otsikkorivi on avain ja muut rivit arvoja.

Harkitse seuraavaa koodia

#import necessary modules
import csv

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

Tämän koodin tulos on:

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

Lue CSV-tiedosto sanakirjaan

Ja tämä tapa lukea tietoja CSV-tiedostosta on paljon helpompaa kuin aikaisempi menetelmä. Tämä ei kuitenkaan ole paras tapa lukea tietoja.

Kuinka kirjoittaa CSV-tiedosto sisään Python

Näin kirjoitat CSV-tiedoston Python:

Kun sinulla on joukko tietoja, jotka haluat tallentaa CSV-tiedostoon, sinun on käytettävä writer()-funktiota. Jos haluat iteroida tietoja rivien (rivien) yli, sinun on käytettävä writerow()-funktiota.

Harkitse seuraavaa esimerkkiä. Kirjoitamme tiedot tiedostoon "writeData.csv", jossa erotin on heittomerkki.

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

Tulos csv-tiedostossa on:

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

kirjoita CSV-tiedosto sisään Python

Lue CSV-tiedosto Pandasin avulla

Pandas on avoimen lähdekoodin kirjasto, jonka avulla voit tuoda CSV:tä sisään Python ja suorittaa tietojen käsittelyä. Pandat tarjoavat helpon tavan luoda, käsitellä ja poistaa tietoja.

Sinun on asennettava pandas-kirjasto komennolla pip install pandas . Sisään Windows, suoritat tämän komennon komentokehotteessa ollessasi Linuxissa terminaalissa.

CSV:n lukeminen pandas DataFrameen on erittäin nopeaa ja helppoa:

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

Tulos lue CSV Pandat Esimerkiksi:

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

Erittäin hyödyllinen kirjasto. Vain kolmella koodirivillä saat saman tuloksen kuin aiemmin. Pandat tietävät, että CSV:n ensimmäinen rivi sisälsi sarakkeiden nimet, ja se käyttää niitä automaattisesti.

Kirjoita CSV-tiedosto Pandasin avulla

CSV-tiedostoon kirjoittaminen Pandasin avulla on yhtä helppoa kuin lukeminen. Täällä voit vakuuttaa siitä. Ensin sinun on luotava DataFrame seuraavan perusteella Python kirjoittaa CSV-koodiin.

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)

Tässä on tulos

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

Ja CSV-tiedosto luodaan määritettyyn paikkaan.

Kirjoita CSV-tiedosto Pandasin avulla

Yhteenveto

Joten nyt tiedät kuinka käyttää menetelmää "csv" ja myös lukea ja kirjoittaa tietoja CSV-muodossa. CSV-tiedostoja käytetään laajalti ohjelmistosovelluksissa, koska niitä on helppo lukea ja hallita, ja niiden pieni koko tekee niistä suhteellisen nopeita käsittelyyn ja lähetykseen.

Csv-moduuli tarjoaa erilaisia ​​toimintoja ja luokkia, joiden avulla voit lukea ja kirjoittaa helposti. Voit katsoa virkamiehen Python dokumentaatiota ja löydä lisää mielenkiintoisia vinkkejä ja moduuleja. CSV on paras tapa tallentaa, tarkastella ja lähettää tietoja. Itse asiassa oppiminen ei ole niin vaikeaa, miltä aluksi näyttää. Mutta pienellä harjoituksella hallitset sen.

Pandas on loistava vaihtoehto CSV-tiedostojen lukemiseen.

On myös muita tapoja jäsentää tekstitiedostoja kirjastoilla, kuten ANTLR, PLY ja PlyPlus. Ne kaikki pystyvät käsittelemään raskasta jäsentämistä, ja jos yksinkertainen merkkijonokäsittely ei toimi, on olemassa säännöllisiä lausekkeita, joita voit käyttää.