Робота з файлами csv на Python

Робота з файлами csv на Python

А Файл CSV (значення, розділені комами). це простий текстовий файл, у якому кожен рядок представляє запис даних, а поля в кожному записі розділені комами. Він зазвичай використовується для електронних таблиць і баз даних через його простоту та читабельність.

Нижче наведено деякі операції, які ми виконуємо під час роботи з CSV-файлами Python у Python

Читання файлу CSV

Читання з файлу CSV здійснюється за допомогою об’єкта reader. Файл CSV відкривається як текстовий файл за допомогою вбудованої в Python функції open(), яка повертає об’єкт файлу. У цьому прикладі ми спочатку відкриваємо файл CSV у режимі READ, а об’єкт файлу перетворюється на об’єкт csv.reader і виконується подальша операція. Код і детальне пояснення наведено нижче.

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  '  )   

Вихід

Робота з файлами csv на Python

У наведеному вище прикладі використовується файл CSV aapl.csv який можна завантажити з тут .

Пояснення:

  • з відкритим (...) безпечно відкриває файл CSV у режимі читання за допомогою менеджера контексту.
  • csv.reader(csvфайл) перетворює файл на об’єкт читача CSV.
  • далі (csvreader) виділяє перший рядок як заголовки стовпців.
  • Прокрутити csvreader щоб додати кожен рядок (як список) до рядків.
  • Надрукувати загальні заголовки рядків і перші 5 рядків даних у форматованому поданні.

Читання файлів CSV у словнику за допомогою csv

Ми можемо прочитати файл CSV у словник за допомогою модуля csv у Python і класу csv.DictReader. Ось приклад:

Припустимо, ми маємо a співробітники.csv файл і вміст у ньому будуть:

назва відділу день народження_місяць
Джон СмітHRЛипень
Аліса Джонсон Жовтень
Боб ВільямсФінансиСічень

приклад: Це зчитує кожен рядок як словник (заголовки як ключі), а потім додає його до списку.

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  )   

Вихід:

{'name': 'Джон Сміт' 'department': 'HR' 'birthday_month': 'липень'}
{'name': 'Alice Johnson' 'department': 'IT' 'birthday_month': 'жовтень'}
{'name': 'Bob Williams' 'department': 'Finance' 'birthday_month': 'січень'}

Пояснення:

  • з відкритим (...) відкриває файл за допомогою контекстного менеджера.
  • csv.DictReader(файл) читає кожен рядок як словник, використовуючи заголовки як ключі.
  • data_list.append(рядок) зберігає кожен словник у списку.

Запис у файл CSV

Щоб записати у файл CSV, ми спочатку відкриваємо файл CSV у режимі WRITE. Файловий об’єкт перетворюється на об’єкт csv.writer і виконуються подальші операції. Код і детальне пояснення наведено нижче.

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   

Пояснення:

  • поля визначає заголовки стовпців, а рядки містять дані у вигляді списку списків.
  • з відкрити (... 'w') відкриває файл у режимі запису за допомогою менеджера контексту.
  • csv.writer(csvфайл) створює об’єкт запису для запису в CSV.
  • writerow(поля) записує рядок заголовка у файл.
  • writerows(рядки) записує всі рядки даних у CSV одночасно.

Запис словника у файл CSV

Щоб записати словник у файл CSV, об’єкт файлу (csvfile) перетворюється на об’єкт DictWriter. Детальний приклад із поясненням і кодом наведено нижче.

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  )   

Вихід

Робота з файлами csv на Pythonфайл csv

Припустімо, що файл CSV у звичайному тексті виглядає так:

університетський рекордуніверситетський рекорд

Пояснення:

  • з відкритим (...) безпечно відкриває файл за допомогою контекстного менеджера.
  • csv.DictWriter(... ) зіставляє ключі словника зі стовпцями CSV.
  • writeheader() записує заголовки стовпців.
  • writerows(mydict) записує всі словники як рядки CSV.

Читання файлів CSV за допомогою Pandas

Ми можемо прочитати а Python CSV файли з використанням Pandas pandas.read_csv() функція. Ось приклад:

Припустімо, що у нас є файл employee.csv і вміст у ньому буде таким:

назва відділу день народження_місяць
Джон СмітHRЛипень
Аліса Джонсон Жовтень
Боб ВільямсФінансиСічень

У цьому прикладі pd.read_csv() читає файл CSV у Pandas DataFrame. Отриманий DataFrame можна використовувати для різних завдань обробки та аналізу даних.

Python
   import   pandas   as   pd   # Read the CSV file into a DataFrame   df   =   pd  .  read_csv  (  'employees.csv'  )   # Display the DataFrame   print  (  df  )   

Вихід:

назва відділу день народження_місяць
0 Джон Сміт HR Лип
1 Еліс Джонсон IT Жовтень
2 Боб Вільямс Фінанси січень

Ми можемо отримати доступ до даних фільтрації певних стовпців і виконувати різні операції за допомогою функціональності pandas DataFrame. Наприклад, якщо ми хочемо отримати доступ до стовпця 'name', ми можемо використати df['name'].

Python
   # Access the 'name' column   names   =   df  [  'name'  ]   print  (  names  )   

Вихід :

0 Джон Сміт
1 Еліс Джонсон
2 Боб Вільямс
Ім'я: ім'я dtype: об'єкт

Запис файлів CSV за допомогою Pandas

Ми можемо використовувати Pandas для запису файлів CSV. Це можна зробити за допомогою pd.DataFrame() функція. У цьому прикладі панди Бібліотека використовується для перетворення списку словників (mydict) у DataFrame, що представляє табличні дані. Потім DataFrame записується у файл Python CSV під назвою «output.csv» за допомогою методу to_csv, створюючи структурований і читабельний файл даних для подальшого аналізу або спільного використання.

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  )   

Вихідний файл CSV:

філіяcgpanameyear
COE9.0Nikhil2
COE9.1Sanchit2
IT9.3Aditya2
SE9.5Sagar1
MCE7.8Пратік3
EP9.1Sahil2

Зберігання електронних листів у файлах CSV

Ми починаємо з імпортування модуля csv і використовуємо його для зберігання імен і електронних адрес у вигляді значень, розділених комами. Використовуючи функцію open(), ми створюємо файл CSV, а потім записуємо кожен рядок за допомогою об’єкта запису з окремими стовпцями для імен та електронних адрес.

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  )   

Вихід:

Електронні листи в csvЕлектронні листи в csv Створіть вікторину

Кращі Статті

Категорія