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.

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.

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

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❤ ️ 🐍!