kuinka avata suuria csv-tai tekstitiedostoja

Post Views: 3,861

ongelma

jos työskentelet Excelin kanssa, Olet todennäköisesti jossain vaiheessa yrittänyt avata suuria csv-tai tekstitiedostoja, mutta ehkä et onnistunut avaamaan niitä. Kollegani sai kerran suuren csv-tiedoston 8 Gt. Hän halusi kurkistaa sisältöön, mutta ei saanut sitä auki millään kokeilemallaan ohjelmalla, Muistilehtiöllä, Excelillä jne. Tiedosto oli yksinkertaisesti liian suuri ohjelman edes alkaa.

niinpä hän pyysi minulta apua. Hänen pyyntönsä oli suhteellisen yksinkertainen: avaa 8GB suuri csv-tiedosto ja mahdollisesti tarkastella tietoja pari tuhatta ensimmäistä riviä. Tämä näennäisesti mahdoton tehtävä on helppoa, kun valitset oikean työkalun-Python.

lähestymistapamme

tutkimme ensin tapoja tutkia suuren csv: n sisältöä. Sitten hajotamme suuren tiedoston pieniksi tiedostoiksi, joten tiedoista tulee toimivia (avattavia?) Excelissä.

esittelytarkoituksessa emme käytä 8 Gt: n suuruista csv-tiedostoa, vaan käytämme pienempää tiedostoa, jossa on vain 2 600 riviä dataa. Jos haluat seurata mukana, voit ladata esimerkin täältä.

ratkaisu

kuten aina, aloitamme tuomalla tarvittavat kirjastot, tässä harjoituksessa tarvitsemme vain pandas.

import pandas as pd 
df = pd.read_csv('large_data.csv')
df_small = pd.read_csv('large_data.csv', nrows = 1000)

pd.read_csv() voimme lukea mitä tahansa .csv tiedosto Python, riippumatta tiedoston koosta-lisää tästä kohdasta myöhemmin. Csv-tiedosto on pilkulla erotettu arvotiedosto, joka on pohjimmiltaan tekstitiedosto. Tässä pandas-menetelmässä on valinnainen argumentti nrows, joka määrittää ladattavien rivien määrän.

ensimmäinen muuttuja df latasi kaiken csv-tiedoston sisälle. Kun taas toinen muuttuja df_small sisälsi vain ensimmäiset 1000 tietoriviä. Sen voi tarkistaa soittamalla .shape – attribuuttiin.

kahden tietomallin koko (#rivejä, # sarakkeita)

kuten yllä on esitetty, ” large_data.csv ” – tiedosto sisältää yhteensä 2618 riviä ja 11 saraketta dataa. Ja voimme myös vahvistaa, että df_small – muuttujassa latasimme vain ensimmäiset 1 000 tietoriviä, myös 11 saraketta.

kirjoittamalla df_small.head() näkyy 5 ensimmäistä tietoriviä df_small datakehyksessä. Voimme kurkistaa suureen tiedostoon näin!

seuraava, Mitä jos haluamme pystyä avaamaan tiedoston vain Excel? Excelistä pidetään, joten siitä on pidettävä kiinni!

vaikka emme voi käyttää taikuutta, jotta Excel voisi avata tämän 8GB-tiedoston, voimme” hajottaa ja hallita ” hajottamalla sen pienempiin tiedostoihin. Esimerkiksi 8 tiedostoja 1GB kukin, tai 16 tiedostoja 500MB kukin. Moderni versio Excel voi käsitellä näitä tiedostokokoja helposti.

tällä kertaa lataamme datakehyksen hieman eri tavalla-valinnaisella argumentilla chunksize. Jälleen, esittelytarkoituksessa, käytämme paljon pienempi tiedosto.

df = pd.read_csv('large_data.csv', chunksize = 900)

menemättä liiaksi teknisiin yksityiskohtiin, chunksize – argumentti antaa meille mahdollisuuden ladata tietoja paloina, ja jokaisen palan koko on esimerkissämme 900 riviä dataa. Palojen määrä määräytyy automaattisesti ohjelman mukaan. Koska csv-tiedostomme sisältää 2618 riviä, odotamme näkevämme 2618 / 900 = 2.9, mikä tarkoittaa yhteensä 3 palasta. Kahdessa ensimmäisessä palassa on 900 riviä ja viimeisessä 818 riviä.

katsotaan, pitääkö se paikkansa.

pienemmät dataframe koot

olemme onnistuneesti ladanneet ja jakaneet yhden tiedoston pienempiin osiin, seuraavaksi tallennetaan ne pienempiin yksittäisiin tiedostoihin.

i = 1for file in df: file.to_csv(f'file_{i}.csv') i += 1
alkuperäisen tiedoston pilkkominen ja tallentaminen pieniksi tiedostoiksi

kaiken kasaaminen

import pandas as pd df = pd.read_csv('large_data.csv', chunksize = 900)df_small = pd.read_csv('large_data.csv', nrows = 1000)i = 1for file in df: print(file.shape) file.to_csv(f'file_{i}.csv') i += 1

käytimme vain 8 riviä koodia ratkaistaksemme sen, mikä tuntuu mahdottomalta saavuttaa Excelissä. I hope you are starting to love Python ❤️🐍!

Vastaa

Sähköpostiosoitettasi ei julkaista.