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

Впервые я начал работать с 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».

3 комментария к “Как прочитать CSV-файл в Python”

  1. Пингбэк: Как обрабатывать текстовые файлы в Python 3 - pythonturbo

  2. Пингбэк: Наиболее используемые функции Pandas

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *