Як читати файл CSV в Python (Модуль, приклади Pandas)

⚡ Розумний підсумок

CSV-файл зберігає табличні дані у вигляді звичайного тексту, де стовпці розділяються комами, а рядки — символами нового рядка. Тут ви навчитеся читати та записувати CSV-файли в Python використовуючи вбудований модуль csv та бібліотеку pandas.

  • 📄 Що це: CSV-файл зберігає табличні дані у вигляді звичайного тексту, розділеного комами.
  • ???? csv.reader: csv.reader() зчитує рядки з CSV-файлу у вигляді списків.
  • 📚 Зчитувач диктувань: csv.DictReader() зчитує кожен рядок у впорядкований словник.
  • ✍️ csv.writer: csv.writer() та writerow() записують рядки у CSV-файл.
  • 🐼 панди: pandas.read_csv() та to_csv() читають та записують CSV-файли в одному рядку.
  • 🤖 Допомога ШІ: Інструменти штучного інтелекту, такі як Copilot, миттєво генерують CSV-код для читання та запису.

Читати CSV-файл у Python

Що таке файл CSV?

A Файл CSV це простий тип звичайного текстового файлу, який використовує певну структуру для впорядкування табличних даних. Стандартний формат файлу CSV визначається даними рядків і стовпців, де символ нового рядка завершує кожен рядок, щоб почати наступний рядок, а кожен стовпець усередині рядка відокремлюється комою.

CSV є поширеним форматом для обміну даними, оскільки він компактний, простий і загальний. Багато онлайн-сервісів дозволяють своїм користувачам експортувати табличні дані з веб-сайту у файл CSV. Файли CSV відкриваються в Excel, і майже всі бази даних мають інструмент для імпорту з файлів CSV.

Зразок файлу CSV

Дані у вигляді таблиць також називають CSV (comma sectioned values) – буквально «значення, розділені комами». Це текстовий формат, призначений для представлення табличних даних. Кожен рядок файлу є одним рядком таблиці. Значення окремих стовпців розділяються роздільником – комою (,), крапкою з комою (;) або іншим символом. CSV можна легко читати та обробляти Python.

Розгляньте наступну таблицю

Дані таблиці

Мова програмування Designed by З'явився Розширення
Python Гвідо ван Россум 1991 .py
Java Джеймс Гослінг 1995 .Java
C++ Бьерн Страуструп 1983 .cpp

Ви можете представити цю таблицю в CSV, як показано нижче.

Дані CSV

Мова програмування, Розроблено, З'явилося, Розширення

Python, Гвідо ван Россум, 1991, .py

Java, Джеймс Гослінг, 1995, .java

C++, Б'ярн Страуструп, 1983,.cpp

Як ви бачите, кожен рядок є новим рядком, а кожен стовпець розділений комою. Це приклад того, як виглядає файл CSV.

Завантажте дані CSV

Python Модуль CSV

Python надає модуль CSV для обробки файлів CSV. Щоб читати/записувати дані, вам потрібно прокрутити рядки CSV. Вам потрібно використовувати метод split, щоб отримати дані з указаних стовпців.

Функції модуля CSV

У документації модуля CSV ви можете знайти такі функції:

  • csv.field_size_limit – повертає максимальний розмір поля
  • csv.get_dialect – отримати діалект, пов’язаний з назвою
  • csv.list_dialects – показати всі зареєстровані діалекти
  • csv.reader – читати дані з файлу csv
  • csv.register_dialect – пов’язати діалект із назвою
  • csv.writer – запис даних у файл csv
  • csv.unregister_dialect – видалити діалект, пов’язаний з іменем реєстру діалектів
  • csv.QUOTE_ALL – Цитуйте все, незалежно від типу.
  • csv.QUOTE_MINIMAL – Поля цитат зі спеціальними символами
  • csv.QUOTE_NONNUMERIC – Усі поля, які не є числовими значеннями, взяти в лапки
  • csv.QUOTE_NONE – Не цитуйте нічого у вихідних даних

У цьому посібнику ми зосередимося лише на функціях читання та запису, які дозволяють редагувати, змінювати та маніпулювати даними у файлі CSV.

Як прочитати файл CSV в Python

Нижче наведено кроки для читання файлу CSV Python.

Крок 1) Щоб зчитувати дані з файлів CSV, необхідно використати функцію reader для створення об’єкта reader.

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

Це звучить набагато складніше, ніж є. Давайте поглянемо на це Python код для читання файлу CSV, і ми побачимо, що працювати з файлом CSV не так вже й важко.

#import necessary modules
import csv
with open('X:\data.csv','rt')as f:
  data = csv.reader(f)
  for row in data:
        print(row)

Крок 2) Коли ви виконаєте наведену вище програму, результатом буде:

['Programming language; Designed by; Appeared; Extension']
['Python; Guido van Rossum; 1991; .py']
['Java; James Gosling; 1995; .java']
['C++; Bjarne Stroustrup;1983;.cpp']

Як прочитати файл CSV у словнику в Python

Ви також можете використовувати DictReader для читання файлів CSV. Результати інтерпретуються як словник, де рядок заголовка є ключем, а інші рядки є значеннями.

Розглянемо наступний код

#import necessary modules
import csv

reader = csv.DictReader(open("file2.csv"))
for raw in reader:
    print(raw)

Результат цього коду:

OrderedDict([('Programming language', 'Python'), ('Designed by', 'Guido van Rossum'), (' Appeared', ' 1991'), (' Extension', ' .py')])
OrderedDict([('Programming language', 'Java'), ('Designed by', 'James Gosling'), (' Appeared', ' 1995'), (' Extension', ' .java')])
OrderedDict([('Programming language', 'C++'), ('Designed by', ' Bjarne Stroustrup'), (' Appeared', ' 1985'), (' Extension', ' .cpp')])

Прочитайте файл CSV у словнику

І цей спосіб читати дані з файлу CSV набагато легший, ніж попередній спосіб. Однак це не найкращий спосіб читання даних.

Як записати файл CSV Python

Ось як записати файл CSV Python:

Якщо у вас є набір даних, які ви хочете зберегти у файлі CSV, ви повинні використовувати функцію writer(). Для повторення даних по рядках (рядках) потрібно використовувати функцію writerow().

Розглянемо наступний приклад. Ми записуємо дані у файл «writeData.csv», де роздільником є ​​апостроф.

#import necessary modules
import csv

with open('X:\writeData.csv', mode='w') as file:
    writer = csv.writer(file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)

    #way to write to csv file
    writer.writerow(['Programming language', 'Designed by', 'Appeared', 'Extension'])
    writer.writerow(['Python', 'Guido van Rossum', '1991', '.py'])
    writer.writerow(['Java', 'James Gosling', '1995', '.java'])
    writer.writerow(['C++', 'Bjarne Stroustrup', '1985', '.cpp'])

Результат у файлі csv:

Programming language, Designed by, Appeared, Extension 
Python, Guido van Rossum, 1991, .py
Java, James Gosling, 1995, .java
C++, Bjarne Stroustrup,1983,.cpp

записати файл CSV Python

Читайте файл CSV за допомогою Pandas

Pandas — це бібліотека з відкритим кодом, яка дозволяє імпортувати CSV Python і виконувати маніпуляції з даними. Pandas надає простий спосіб створювати, маніпулювати та видаляти дані.

Ви повинні встановити бібліотеку pandas за допомогою команди pip install pandas . в Windows, ви виконайте цю команду в командному рядку в Linux у терміналі.

Зчитування CSV у pandas DataFrame дуже швидке та просте:

#import necessary modules
import pandas
result = pandas.read_csv('X:\data.csv')
print(result)

Результат читати CSV Pandas приклад:

Programming language, Designed by, Appeared, Extension 
0    Python, Guido van Rossum, 1991, .py
1    Java, James Gosling, 1995, .java
2    C++, Bjarne Stroustrup,1983,.cpp

Дуже корисна бібліотека. Лише за три рядки коду ви отримаєте той самий результат, що й раніше. Pandas знає, що перший рядок CSV містить назви стовпців, і використовуватиме їх автоматично.

Напишіть файл CSV за допомогою Pandas

Запис у файл CSV за допомогою Pandas так само простий, як і читання. Ось ви можете в цьому переконатися. Спочатку ви повинні створити DataFrame на основі наступного Python записати в код CSV.

from pandas import DataFrame
C = {'Programming language': ['Python','Java', 'C++'],
        'Designed by': ['Guido van Rossum', 'James Gosling', 'Bjarne Stroustrup'],
        'Appeared': ['1991', '1995', '1985'],
        'Extension': ['.py', '.java', '.cpp'],
    }
df = DataFrame(C, columns= ['Programming language', 'Designed by', 'Appeared', 'Extension'])
export_csv = df.to_csv (r'X:\pandaresult.csv', index = None, header=True) # here you have to write path, where result file will be stored
print (df)

Ось результат

Programming language, Designed by, Appeared, Extension
0    Python, Guido van Rossum, 1991, .py
1    Java, James Gosling, 1995, .java
2    C++, Bjarne Stroustrup,1983,.cpp

І файл CSV створюється у вказаному місці.

Напишіть файл CSV за допомогою Pandas

Поширені запитання

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

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

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

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

Викличте pandas.read_csv('file.csv'), який завантажує CSV-файл у DataFrame одним рядком. Pandas автоматично використовує перший рядок як заголовки стовпців.

Помічники штучного інтелекту, такі як GitHub Copilot, автозаповнюють csv-файли та виклики pandas, генерують цикли читання та запису, а також пропонують правильний роздільник або варіант цитування на основі короткого опису.

Так. Інструменти на базі штучного інтелекту можуть автоматизувати парсинг, очищення та конвертацію даних CSV, генерувати конвеєри pandas та додавати обробку помилок для неправильно сформованих рядків або відсутніх стовпців.

Використовуйте вбудований модуль CSV для простого та легкого читання та запису. Оберіть pandas, коли вам потрібно ефективно фільтрувати, трансформувати або аналізувати великі набори даних CSV.

Підсумуйте цей пост за допомогою: