slik åpner du store csv-eller tekstfiler

Postvisninger: 3,861

Problemet

hvis Du jobber Med Excel, har du sannsynligvis forsøkt å åpne store csv – eller tekstfiler, men kanskje ikke åpnet dem. Min kollega mottok en gang EN stor csv-fil PÅ 8GB. Han ønsket å ta en titt på innholdet, men han kunne ikke åpne det ved hjelp av et program han prøvde, Notisblokk, Excel, etc. Filen var rett og slett for stor for programmet å selv begynne.

så han nådde ut til meg for hjelp. Hans forespørsel var relativt enkel: åpne OPP 8gb stor csv-fil og potensielt se på data i de første par tusen linjer. Denne tilsynelatende umulige oppgaven er lett når du velger riktig verktøy-Python.

Vår Tilnærming

vi vil først utforske måter å undersøke innholdet i den store csv. Da bryter vi ned den store filen i små filer, slik at dataene blir brukbare(kan åpnes ?) I Excel.

for demonstrasjonsformål bruker vi IKKE EN 8 GB stor csv-fil; i stedet bruker vi en mindre fil med bare 2600 rader med data. Hvis du vil følge med, kan du laste ned eksemplet herfra.

Løsningen

som alltid starter vi med å importere de nødvendige bibliotekene, i denne øvelsen trenger vi bare 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() tillater oss å lese noen .csv-fil I Python, uavhengig av filstørrelsen-mer på dette punktet senere. En csv-fil er en kommaseparert verdifil, som i utgangspunktet er en tekstfil. Denne pandas-metoden har et valgfritt argument nrows, som angir antall rader du vil laste inn.

Den første variabelen df lastet alt i csv-filen. Mens den andre variabelen df_small bare lastet de første 1000 radene med data. Vi kan sjekke det ved å ringe .shape attributtet.

størrelse (#av rader, # av kolonner) av de to dataframes

som vist ovenfor, den » large_data.csv » – filen inneholder 2618 rader og 11 kolonner med data totalt. Og vi kan også bekrefte at i variabelen df_small lastet vi bare de første 1000 radene med data, også 11 kolonner.

Skrive df_small.head() viser de første 5 radene med data i df_small dataframe . Vi kan ta en titt inn i den store filen på denne måten!

Neste, hva om vi vil kunne åpne datafilen ved hjelp av Bare Excel? Du vet, folk liker Excel, så vi må holde fast ved det!

selv om vi ikke kan bruke magi for Å tillate Excel å åpne DENNE 8gb-filen, kan vi «dele og erobre» ved å bryte ned den i mindre filer. For eksempel, 8 filer MED 1GB hver, eller 16 filer MED 500MB hver. En moderne Versjon Av Excel kan håndtere disse filstørrelsene enkelt.

Denne gangen laster vi dataframe litt annerledes-med et valgfritt argument chunksize. Igjen, for demonstrasjonsformål, bruker vi en mye mindre fil.

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

uten å komme inn i for mye teknisk detalj, lar chunksize argumentet oss laste data i biter, med hver del som har en størrelse på 900 rader med data i vårt eksempel. Antall biter bestemmes automatisk av programmet. Gitt at vår csv-fil inneholder 2,618 rader, forventer vi å se 2618 / 900 = 2,9, noe som betyr 3 biter totalt. De to første bitene inneholder 900 rader, og den siste delen inneholder de resterende 818 radene.

La oss se om det er sant.

mindre dataframe størrelser

vi har lastet og brutt ned en fil i mindre biter, neste la oss lagre dem i mindre individuelle filer.

i = 1for file in df: file.to_csv(f'file_{i}.csv') i += 1
bryte ned den opprinnelige filen og lagre i små filer

Sette alt Sammen

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

vi brukte bare 8 linjer med kode for å løse det som synes umulig å oppnå I Excel. Jeg håper du begynner å elske Python❤ ️ 🐍!

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.