cum să deschideți fișiere CSV sau text mari

Vizualizări Post: 3,861

problema

dacă lucrați cu Excel, la un moment dat, probabil că ați încercat să deschideți fișiere csv sau text mari, dar poate că nu le-ați deschis. Colegul meu a primit odată un fișier csv mare de 8 GB. A vrut să arunce o privire asupra conținutului, dar nu l-a putut deschide folosind niciun program pe care l-a încercat, Notepad, Excel etc. Fișierul a fost pur și simplu prea mare pentru ca programul să înceapă chiar.

așa că mi-a cerut ajutorul. Cererea lui a fost relativ simplă: deschideți fișierul csv mare de 8 GB și potențial priviți datele din primele câteva mii de linii. Această sarcină aparent imposibilă este ușoară atunci când alegeți instrumentul potrivit-Python.

abordarea noastră

vom explora mai întâi modalități de a examina conținutul csv mare. Apoi vom descompune fișierul mare în fișiere mici, astfel încât datele să devină funcționale (deschise?) în Excel.

în scop demonstrativ, nu vom folosi un fișier csv mare de 8 GB; în schimb, vom folosi un fișier mai mic cu doar 2.600 de rânduri de date. Dacă doriți să urmați, nu ezitați să descărcați exemplul de aici.

soluția

ca întotdeauna, începem prin importul bibliotecilor necesare, în acest exercițiu, avem nevoie doar de 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() ne permite să citim orice .fișier csv în Python, indiferent de dimensiunea fișierului – mai multe despre acest punct mai târziu. Un fișier csv este un fișier valori separate prin virgulă, care este de fapt un fișier text. Această metodă Panda are un argument opțional nrows, care specifică numărul de rânduri pe care doriți să le încărcați.

prima variabilă df a încărcat totul în fișierul csv. În timp ce a doua variabilă df_small a încărcat doar primele 1.000 de rânduri de date. Putem verifica acest lucru apelând atributul .shape.

dimensiunea (#de rânduri, # de coloane) a celor două cadre de date

așa cum se arată mai sus, „large_data.fișierul ” csv ” conține 2618 rânduri și 11 coloane de date în total. Și putem confirma, de asemenea, că în variabila df_small, am încărcat doar primele 1.000 de rânduri de date, de asemenea 11 coloane.

tastarea df_small.head() arată primele 5 rânduri de date din cadrul cadrului de date df_small. Putem arunca o privire în fișierul mare în acest fel!

în continuare, ce se întâmplă dacă dorim să putem deschide fișierul de date folosind doar Excel? Știi, oameni ca Excel așa că trebuie să rămânem la ea!

deși nu putem folosi magic pentru a permite Excel să deschidă acest fișier de 8 GB, putem „împărți și cuceri” descompunându-l în fișiere mai mici. De exemplu, 8 fișiere cu 1 GB fiecare sau 16 fișiere cu 500 MB fiecare. O versiune modernă de Excel poate gestiona cu ușurință aceste dimensiuni de fișiere.

de data aceasta, vom încărca cadrul de date ușor diferit – cu un argument opțional chunksize. Din nou, în scop demonstrativ, folosim un fișier mult mai mic.

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

fără a intra în prea multe detalii tehnice, argumentul chunksize ne permite să încărcăm datele în bucăți, fiecare bucată având o dimensiune de 900 de rânduri de date în exemplul nostru. Numărul de bucăți este determinat automat de program. Având în vedere că fișierul nostru csv conține 2.618 rânduri, ne așteptăm să vedem 2618 / 900 = 2.9, ceea ce înseamnă 3 bucăți în total. Primele două bucăți conțin 900 de rânduri, iar ultima bucată conține restul de 818 rânduri.

să vedem dacă este adevărat.

dimensiuni mai mici ale cadrului de date

am încărcat și împărțit cu succes un fișier în bucăți mai mici, apoi să le salvăm în fișiere individuale mai mici.

i = 1for file in df: file.to_csv(f'file_{i}.csv') i += 1
descompunerea fișierului original și salvarea în fișiere mici

punerea totul împreună

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

am folosit doar 8 linii de cod pentru a rezolva ceea ce pare imposibil de realizat în Excel. Sper ca incepi sa iubesti pitonul de la circ!

Lasă un răspuns

Adresa ta de email nu va fi publicată.