Впервые я начал работать с CSV-файлами, когда изучал бэкенд в рамках курса по разработке ПО. Но использовать их на регулярной основе я стал только когда погрузился в науку о данных.
CSV расшифровывается как comma-separated values (“значения, разделенные запятыми”), и это надо понимать буквально. Файлы с расширением .csv хранят данные в виде набора значений, разделенных запятыми.
В этом туториале мы будем использовать общедоступный набор данных о качестве воды на пляже, хранящийся в файле bwq.csv. Вы можете получить этот файл, загрузив его с сайта Kaggle. Но, конечно, следуя приведенным ниже инструкциям, вы сможете прочитать любой csv-файл.
Чтение файла CSV в Python
Существует два распространенных способа чтения csv-файла в Python. Первый – с использованием библиотеки csv, а второй – с использованием библиотеки pandas.
1. Использование библиотеки csv
import csv wiyh open("./bwq.csv", 'r') as file: csvreader = csv.reader(file) for row in csvreader: print(row)
Здесь мы импортируем библиотеку csv, чтобы использовать содержащийся в ней метод .reader()
для чтения файла csv. Ключевое слово with позволяет нам как открывать, так и закрывать файл без необходимости его явного закрытия.
Метод open()
принимает два аргумента типа string. Первый – имя файла, а второй – режим, в котором нужно открыть файл. Для открытия файла в режиме чтения используется аргумент r
, однако его можно не указывать, так как r
предполагается по умолчанию.
Затем мы перебираем все строки в цикле for
.
Вывод в терминале должен выглядеть примерно так:
2. Использование библиотеки Pandas
import pandas as pd data = pd.read_csv("bwq.csv") data
Здесь мы импортируем Pandas – библиотеку Python, используемую для проведения манипуляций с данными и анализа данных. Она содержит метод .read_csv()
, необходимый нам для чтения нашего csv-файла.
Результат будет выглядеть примерно так:
Возможные проблемы с разделителями
Большинство csv-файлов разделяются запятыми, однако есть и такие, которые разделяются другими символами, например, двоеточиями. В коде на Python это может привести к неожиданным результатам.
Решение проблемы разделителей в csv-файле с помощью библиотеки csv
Чтобы изменить разделитель с помощью библиотеки csv, просто передайте аргумент delimiter=':'
в метод reader()
следующим образом:
import csv with open("./fileWithClonDelimetr.csv", 'r') as file: csvreader = csv.reader(file, delimiter=':') for row in csvreader: print(row)
О других крайних случаях чтения csv-файлов с помощью библиотеки csv читайте в документации Python.
Решение проблемы разделителей в csv-файле с помощью библиотеки Pandas
Чтобы изменить разделитель с помощью библиотеки pandas, просто передайте аргумент delimiter=':'
в метод read_csv()
следующим образом:
import pandas as pd data = pd.read_csv("fileWithColonDelimeter.csv", delimiter=':') data
О других крайних случаях чтения файлов csv с помощью библиотеки Pandas читайте в документации Pandas.
Перевод статьи Kelly Moreira «How To Read A CSV File In Python».
В первом примере команда with написана не правильно.
Пингбэк: Как обрабатывать текстовые файлы в Python 3 - pythonturbo
Пингбэк: Наиболее используемые функции Pandas