Рад са цсв датотекама у Питхон-у
А ЦСВ (вредности одвојене зарезима) датотека је обична текстуална датотека у којој сваки ред представља запис података, а поља унутар сваког записа су одвојена зарезима. Обично се користи за табеле и базе података због своје једноставности и читљивости.
Испод су неке операције које изводимо док радимо са Питхон ЦСВ датотекама у Питхон-у
Читање ЦСВ датотеке
Читање из ЦСВ датотеке се врши помоћу објекта читача. ЦСВ датотека се отвара као текстуална датотека са Питхон-овом уграђеном функцијом опен() која враћа објекат датотеке. У овом примеру прво отварамо ЦСВ датотеку у РЕАД режиму датотечни објекат се конвертује у цсв.реадер објекат и одвија се даља операција. Шифра и детаљно објашњење су дати у наставку.
Python import csv filename = 'aapl.csv' # File name fields = [] # Column names rows = [] # Data rows with open ( filename 'r' ) as csvfile : csvreader = csv . reader ( csvfile ) # Reader object fields = next ( csvreader ) # Read header for row in csvreader : # Read rows rows . append ( row ) print ( 'Total no. of rows: %d ' % csvreader . line_num ) # Row count print ( 'Field names are: ' + ' ' . join ( fields )) print ( ' n First 5 rows are: n ' ) for row in rows [: 5 ]: for col in row : print ( ' %10s ' % col end = ' ' ) print ( ' n ' )
Излаз
Горњи пример користи ЦСВ датотеку аапл.цсв који се може преузети са овде .
Објашњење:
- са отвореним (...) отвара ЦСВ датотеку у режиму читања безбедно користећи менаџер контекста.
- цсв.реадер(цсвфиле) претвара датотеку у објекат ЦСВ читача.
- следећи (цсвреадер) издваја први ред као заглавља колона.
- Петља кроз цсвреадер да додате сваки ред (као листу) редовима.
- Одштампајте заглавља укупних редова и првих 5 редова података у форматираном приказу.
Читање ЦСВ датотека у речник помоћу цсв
Можемо прочитати ЦСВ датотеку у речник користећи цсв модул у Питхон-у и класу цсв.ДицтРеадер. Ево примера:
Претпоставимо да имамо а запослени.цсв датотека и садржај унутар њега биће:
имедепартментбиртхдаи_монтх
Јохн СмитхХРЈул
Алице ЈохнсонИТОцтобер
Боб ВиллиамсФинанцеЈануари
Пример: Ово чита сваки ред као речник (заглавља као кључеви), а затим га додаје листи.
Python import csv with open ( 'employees.csv' mode = 'r' ) as file : csv_reader = csv . DictReader ( file ) # Create DictReader data_list = [] # List to store dictionaries for row in csv_reader : data_list . append ( row ) for data in data_list : print ( data )
Излаз:
{'име': 'Јохн Смитх' 'департмент': 'ХР' 'биртхдаи_монтх': 'Јули'}
{'наме': 'Алице Јохнсон' 'департмент': 'ИТ' 'биртхдаи_монтх': 'Октобар'}
{'име': 'Боб Вилијамс' 'одељење': 'Финансије' 'биртхдаи_монтх': 'Јануар'}
Објашњење:
- са отвореним (...) отвара датотеку помоћу менаџера контекста.
- цсв.ДицтРеадер(фајл) чита сваки ред као речник користећи заглавља као кључеве.
- дата_лист.аппенд(ред) чува сваки речник у листи.
Писање у ЦСВ датотеку
Да бисмо писали у ЦСВ датотеку, прво отварамо ЦСВ датотеку у режиму ПИСАЊА. Датотечни објекат се конвертује у објекат цсв.вритер и одвијају се даље операције. Шифра и детаљно објашњење су дати у наставку.
Python import csv # Define header and data rows fields = [ 'Name' 'Branch' 'Year' 'CGPA' ] rows = [ [ 'Nikhil' 'COE' '2' '9.0' ] [ 'Sanchit' 'COE' '2' '9.1' ] [ 'Aditya' 'IT' '2' '9.3' ] [ 'Sagar' 'SE' '1' '9.5' ] [ 'Prateek' 'MCE' '3' '7.8' ] [ 'Sahil' 'EP' '2' '9.1' ] ] filename = 'university_records.csv' with open ( filename 'w' ) as csvfile : csvwriter = csv . writer ( csvfile ) # Create writer object csvwriter . writerow ( fields ) # Write header csvwriter . writerows ( rows ) # Write multiple rows
Објашњење:
- поља дефинише заглавља колона, а редови садрже податке као листу листа.
- са отвори (... 'в') отвара датотеку у режиму писања помоћу менаџера контекста.
- цсв.вритер(цсвфиле) креира објекат за писање за писање у ЦСВ.
- уписни ред(поља) уписује ред заглавља у датотеку.
- редови (редови) уписује све редове података у ЦСВ одједном.
Писање речника у ЦСВ датотеку
Да бисте написали речник у ЦСВ датотеку, објекат датотеке (цсвфиле) се конвертује у објекат ДицтВритер. Детаљан пример са објашњењем и кодом је дат у наставку.
Python # importing the csv module import csv # my data rows as dictionary objects mydict = [{ 'branch' : 'COE' 'cgpa' : '9.0' 'name' : 'Nikhil' 'year' : '2' } { 'branch' : 'COE' 'cgpa' : '9.1' 'name' : 'Sanchit' 'year' : '2' } { 'branch' : 'IT' 'cgpa' : '9.3' 'name' : 'Aditya' 'year' : '2' } { 'branch' : 'SE' 'cgpa' : '9.5' 'name' : 'Sagar' 'year' : '1' } { 'branch' : 'MCE' 'cgpa' : '7.8' 'name' : 'Prateek' 'year' : '3' } { 'branch' : 'EP' 'cgpa' : '9.1' 'name' : 'Sahil' 'year' : '2' }] # field names fields = [ 'name' 'branch' 'year' 'cgpa' ] # name of csv file filename = 'university_records.csv' # writing to csv file with open ( filename 'w' ) as csvfile : # creating a csv dict writer object writer = csv . DictWriter ( csvfile fieldnames = fields ) # writing headers (field names) writer . writeheader () # writing data rows writer . writerows ( mydict )
Излаз
цсв датотеку Узмите у обзир да ЦСВ датотека изгледа овако у обичном тексту:
универзитетски рекорд Објашњење:
- са отвореним (...) безбедно отвара датотеку помоћу менаџера контекста.
- цсв.ДицтВритер(... ) мапира кључеве речника у ЦСВ колоне.
- вритехеадер() пише заглавља колона.
- писци (мидицт) пише све речнике као ЦСВ редове.
Читање ЦСВ датотека са Пандама
Можемо читати а Питхон ЦСВ датотеке са Пандас користећи пандас.реад_цсв() функција. Ево примера:
Претпоставимо да имамо датотеку емплоиее.цсв и садржај унутар ње ће бити:
имедепартментбиртхдаи_монтх
Јохн СмитхХРЈул
Алице ЈохнсонИТОцтобер
Боб ВиллиамсФинанцеЈануари
У овом примеру пд.реад_цсв() чита ЦСВ датотеку у Пандас ДатаФраме. Добијени ДатаФраме може се користити за различите задатке манипулације и анализе података.
Python import pandas as pd # Read the CSV file into a DataFrame df = pd . read_csv ( 'employees.csv' ) # Display the DataFrame print ( df )
Излаз:
именско одељење рођендан_месец
0 Јохн Смитх ХР јул
1 Алице Јохнсон ИТ октобар
2 Боб Виллиамс Финанце јануар
Можемо приступити одређеним колонама филтрирати податке и изводити различите операције користећи пандас ДатаФраме функционалност. На пример, ако желимо да приступимо колони 'наме', можемо користити дф['наме'].
Python # Access the 'name' column names = df [ 'name' ] print ( names )
Излаз :
0 Џон Смит
1 Алис Џонсон
2 Боб Вилијамс
Име: име дтипе: објекат
Писање ЦСВ датотека са Пандас
Можемо користити Панде за писање ЦСВ датотека. То се може учинити коришћењем пд.ДатаФраме() функција. У овом примеру, Панде библиотека се користи за претварање листе речника (мидицт) у ДатаФраме који представља табеларне податке. ДатаФраме се затим уписује у Питхон ЦСВ датотеку под називом 'оутпут.цсв' користећи то_цсв метод креирајући структурирану и читљиву датотеку података за даљу анализу или дељење.
Python import pandas as pd mydict = [ { 'branch' : 'COE' 'cgpa' : '9.0' 'name' : 'Nikhil' 'year' : '2' } { 'branch' : 'COE' 'cgpa' : '9.1' 'name' : 'Sanchit' 'year' : '2' } { 'branch' : 'IT' 'cgpa' : '9.3' 'name' : 'Aditya' 'year' : '2' } { 'branch' : 'SE' 'cgpa' : '9.5' 'name' : 'Sagar' 'year' : '1' } { 'branch' : 'MCE' 'cgpa' : '7.8' 'name' : 'Prateek' 'year' : '3' } { 'branch' : 'EP' 'cgpa' : '9.1' 'name' : 'Sahil' 'year' : '2' } ] # Create a DataFrame from the list of dictionaries df = pd . DataFrame ( mydict ) # Write the DataFrame to a CSV file df . to_csv ( 'output.csv' index = False )
Излаз ЦСВ датотеке:
бранцхцгпанамеиеар
ЦОЕ9.0Никхил2
ЦОЕ9.1Санцхит2
ИТ9.3Адитиа2
СЕ9.5Сагар1
МЦЕ7.8Пратеек3
ЕП9.1Сахил2
Чување е-порука у ЦСВ датотекама
Почињемо са увозом цсв модула и користимо га за чување имена и е-поште као вредности раздвојених зарезима. Користећи опен() функцију креирамо ЦСВ датотеку, а затим уписујемо сваки ред користећи објекат за писање са засебним колонама за имена и е-пошту.
Python # importing the csv module import csv # field names fields = [ 'Name' 'Email' ] # data rows of csv file rows = [ [ 'Nikhil' '[email protected]' ] [ 'Sanchit' '[email protected]' ] [ 'Aditya' '[email protected]' ] [ 'Sagar' '[email protected]' ] [ 'Prateek' '[email protected]' ] [ 'Sahil' '[email protected]' ]] # name of csv file filename = 'email_records.csv' # writing to csv file with open ( filename 'w' ) as csvfile : # creating a csv writer object csvwriter = csv . writer ( csvfile ) # writing the fields csvwriter . writerow ( fields ) # writing the data rows csvwriter . writerows ( rows )
Излаз:
Имејлови у цсв Креирај квиз