Как прочитать файл CSV в Python (Модуль, Примеры Pandas)
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.
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 в 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-файла с помощью 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», а также читать и записывать данные в формате CSV. Файлы CSV широко используются в программных приложениях, поскольку их легко читать и управлять ими, а небольшой размер делает их относительно быстрыми для обработки и передачи.
Модуль csv предоставляет различные функции и классы, которые позволяют легко читать и писать. Вы можете посмотреть официальную Python документацию и найдите еще несколько интересных советов и модулей. CSV — лучший способ сохранения, просмотра и отправки данных. На самом деле, его не так сложно изучить, как кажется на первый взгляд. Но с небольшой практикой вы освоите его.
Pandas — отличная альтернатива для чтения файлов CSV.
Кроме того, существуют и другие способы анализа текстовых файлов с помощью таких библиотек, как ANTLR, PLY и PlyPlus. Все они могут выполнять сложный синтаксический анализ, и если простые манипуляции со строками не работают, вы можете использовать регулярные выражения.