Как прочитать файл CSV в Python (Модуль, Примеры Pandas)

⚡ Умное резюме

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

  • 📄 Что это: В CSV-файле табличные данные хранятся в виде простого текста, разделенного запятыми.
  • ???? csv.reader: Функция csv.reader() считывает строки из CSV-файла в виде списков.
  • 📚 DictReader: Метод 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 (значения, разделенные запятыми) — буквально «значения, разделенные запятыми». Это текстовый формат, предназначенный для представления табличных данных. Каждая строка файла представляет собой одну строку таблицы. Значения отдельных столбцов разделяются символом-разделителем – запятой (,), точкой с запятой (;) или другим символом. CSV можно легко прочитать и обработать с помощью Python.

Рассмотрим следующую таблицу

Табличные данные

Язык программирования Разработано Появился Расширение
Python Гвидо ван Россум 1991 .py
Java Джеймс Гослинг 1995 .Ява
C++ Бьярне Страуструп 1983 .cpp

Вы можете представить эту таблицу в формате CSV, как показано ниже.

CSV-данные

Язык программирования, Разработано, Появилось, Расширение

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

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

C++, Бьерн Страуструп,1983,.cpp

Как видите, каждая строка — это новая строка, а каждый столбец отделяется запятой. Это пример того, как выглядит файл CSV.

Загрузить данные CSV

Python CSV-модуль

Python предоставляет модуль CSV для обработки файлов CSV. Чтобы читать/записывать данные, вам необходимо перебирать строки CSV. Вам нужно использовать метод разделения, чтобы получить данные из указанных столбцов.

Функции модуля 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_NNNUMERIC – Заключить в кавычки все поля, которые не являются числовыми значениями.
  • csv.QUOTE_NONE – Ничего не цитируйте в выводе

В этом уроке мы сосредоточимся только на функциях чтения и записи, которые позволяют вам редактировать, изменять и манипулировать данными в файле CSV.

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

Ниже приведены шаги для чтения файла CSV в Python.

Шаг 1) Чтобы прочитать данные из файлов CSV, вы должны использовать функцию чтения для создания объекта чтения.

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

Звучит гораздо сложнее, чем есть на самом деле. Давайте посмотрим на это 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 в DataFrame pandas происходит очень быстро и легко:

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

Результат читать CSV Панды пример:

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

Часто задаваемые вопросы (FAQ)

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

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

Откройте файл в режиме записи, создайте объект csv.writer() и вызовите writerow() для каждой строки или writerows() для нескольких строк. Объект writer автоматически обрабатывает кавычки и разделители.

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

Вызовите `pandas.read_csv('file.csv')`, чтобы загрузить CSV-файл в DataFrame в одну строку. Pandas автоматически использует первую строку в качестве заголовков столбцов.

Искусственный интеллект, используемый такими помощниками, как GitHub Copilot, автоматически дополняет CSV-файлы и вызовы pandas, генерирует циклы чтения и записи, а также предлагает подходящий разделитель или вариант кавычек на основе краткого описания.

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

Используйте встроенный модуль csv для простого и легкого чтения и записи. Выбирайте pandas, когда вам нужно эффективно фильтровать, преобразовывать или анализировать большие наборы данных CSV.

Подведем итог этой публикации следующим образом: