Рубрики
Без рубрики

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

6 мин прочитайте, как прочитать данные из файла .csv и добавьте его столбец или строку в список? Существует три основных способа: вариант 1 (самый быстрый): используйте стандартную библиотеку опцию 2 (наиболее предпочтительно): используйте опцию PANDAS.READ_CSV (). .csv Файл в … Как прочитать файл CSV в список Python? Подробнее “

Автор оригинала: Kirill Kravets.

6 мин прочитано

Как читать данные из .csv Файл и добавьте его столбец или строку в список? Есть три основных способа:

  • Вариант 1 (самый быстрый): используйте стандартную библиотеку
  • Вариант 2 (наиболее предпочтительно): использовать pandas.read_csv ()
  • Вариант 3 (Необязательно): использовать CSV.Reader ()

Короткий ответ

Самый простой вариант для чтения .csv Файл в список – использовать его с Открыть («файл») как F: и применить необходимые действия. Вы также помните, что такой подход имеет свои ограничения, как вы увидите в руководстве.

Предпосылки

Читать .csv файл, я использовал следующие инструменты:

  • Python 3.8.
  • Pycharm Ide Для удобного опыта кодирования
  • Sublime Text Editor для ручной проверки .csv файл

По умолчанию вы можете прочитать файлы CSV, используя другие инструменты или даже по умолчанию, предварительно установленные программы у вас есть на вашем компьютере, так что это просто вопрос выбора, какие инструменты для использования. Кодовая база может быть выполнена в любом месте с теми же результатами.

Что такое формат CSV?

В настоящее время три основных формата данных используются для передачи данных из одной машины к другому: CSV, XML и JSON.

Сокращение CSV означает «разделенные запятыми значениями». Как подразумевает имя, это всего лишь список элементов, разделенных запятыми. Это самый простой формат для передачи данных и должен использоваться, если

  1. Вам нужен самый компактный размер файла или
  2. У вас есть плоская структура данных.

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

Статьи по Теме:

  • Pandas DataFrame. к CSV
  • Как преобразовать список списков в файл CSV в Python?

Пример задачи

Это реальная задача в упрощенной форме. Цель состоит в том, чтобы прочитать данные из файла CSV (70 КБ) и образуют список всех серийных кодов, присутствующих во второй строке.

Предоставленные данные являются открытыми статистическими данными от Европейского центрального банка (ECB) в формате CSV и представляют финансовые потоки в течение периода. Файл состоит из трех основных полей:

  1. Код серии
  2. Наблюдаемая дата (период, например, 2019Q4, 2020к1 и т. Д.)
  3. Наблюдаемое значение (точка данных, номер поплавка)

Прямая ссылка для скачивания.

Подготовка данных

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

Сценарий:

import os 
import wget 

link = "http://sdw.ecb.europa.eu/export.do? mergeFilter=&removeItem=L&REF_AREA.252=I8&COUNTERPART_AREA.252=W0 &rc=&ec=&legendPub=published&oc=&df=true&DATASET=0&dc=&ACCOUNTING _ENTRY.252=A&node=9689710&showHide=&removedItemList=&pb=&legendNo r=&activeTab=&STO.252=F&STO.252=K7&STO.252=KA&STO.252=LE&legendRe f=reference&REF_SECTOR.252=S1&exportType=csv&ajaxTab=true" 
path = f"C:{os.environ['HOMEPATH']}\\Desktop\\data.csv" 

wget.download(link, path) 

Скрипта:

import os 
import wget

Импортные операторы используются для установки базы кода, которая была написана кем-то еще до и готов к использованию, только что ссылаясь на него. Некоторые их (например, Wget ) Дополнительно установлен с использованием аналогичной команды:

Следующая команда установит последнюю версию модуля и его зависимостей из индекса упаковки Python:

python -m pip install offackage

ОС Пакет используется для выполнения базовой работы с файлами и папками в вашей операционной системе.

wget Пакет используется для загрузки файлов с веб-сайтов.

link = "http://sdw.ecb.europa.eu/export.do? 
mergeFilter=&removeItem=L&REF_AREA.252=I8&COUNTERPART_AREA.252=W0 &rc=&ec=&legendPub=published&oc=&df=true&DATASET=0&dc=&ACCOUNTING _ENTRY.252=A&node=9689710&showHide=&removedItemList=&pb=&legendNo r=&activeTab=&STO.252=F&STO.252=K7&STO.252=KA&STO.252=LE&legendRe f=reference&REF_SECTOR.252=S1&exportType=csv&ajaxTab=true" 

Строконная переменная ссылка Создан, который представляет прямую ссылку для скачивания. Эта ссылка может быть легко протестирована в любом веб-браузере.

Путь “C: {os.environ [‘homepath’]} \\ desktop \\ data.csv”

строковая переменная путь Создан, который представляет путь в вашей системе, где файлы будут загружены позже.

Префикс « F », прежде чем строка делает его «F-string», что означает, что вы можете использовать другие переменные в строке с помощью {заполнители} Отказ В этом случае переменная OS.ENVIRON [«HOMEPATH»] Относится к системной переменную (объявлена в системе Windows по умолчанию, не в вашем скрипте Python) и помещает его в строку, которую мы только что создали. По умолчанию Домашняя дорожка Относится к текущему пользователю C: \ Пользователи \% пользователя% (ты).

wget.download(link, path)

Функция звонит wget.download () Запускает файл загрузки из ранее указанной ссылки и сохраняет его по предварительному указанному пути.

Результатом этого шага представляет собой готовый к использованию файла CSV на вашем рабочем столе. Теперь мы можем проанализировать данные из CSV-файла и извлечения кодов серии для списка.

Разведка данных

Это хорошая практика для изучения данных, прежде чем начать расставаться. В этом случае вы можете увидеть, что коды серии присутствуют во втором ряду data.csv Отказ

Вариант 1 (самый быстрый): используйте стандартную библиотеку

Это самый быстрый вариант чтения файла с использованием стандартной библиотеки. Предполагая, что файл подготовлен и расположен на вашем рабочем столе, вы можете использовать скрипт ниже. Это самый простой способ получить данные в списке. Однако он имеет свои недостатки.

Вход:

import os 
path = f"C:{os.environ['HOMEPATH']}\\Desktop\\data.csv" 
with open(path, "r") as f: 
print(list(f.readlines()[1].split(","))[1:]) 

Выход:

['QSA.Q.N.I8.W0.S1.S1.N.A.F.F._Z._Z.XDC._T.S.V.N._T',... 'QSA.Q.N.I8.W0.S1.S1.N.A.LE.F89.T._Z.XDC._T.S.V.N._T']

Скрипта:

with open(path, "r") as f: 
print(list(f.readlines()[1].split(","))[1:]) 

Оператор импорта и переменное назначение пропущено так, как было описано ранее, и основное внимание уделяется последним заявлениям.

Это комбинированное изложение трех частей:

  1. Заявление «С», в общем смысле, позволяет нам определить, какой код код (действия) мы хотим сделать с объектом, пока оно «активно». В этом случае мы хотим сказать Python, что он должен выполнять некоторые действия, пока файл открыт, и когда все заявления будут завершены, закройте его.
  2. Оператор «Open» позволяет нам открывать файл и место в памяти Python. В этом случае мы открываем ранее данный файл («Путь» переменную) в режиме «R», который обозначает режим «READ» -ONLY.
  3. Заявление «Print» позволяет увидеть вывод на экране. В этом случае мы
    1. принять файл объект F с Открыть (путь, 'r') как f С
    2. Прочитайте вторую строку с f.readlines () [1] С
    3. Разделить линию по , сепаратор в f.readlines () [1] .split (",") ,
    4. Преобразовать в список в список Список (f.readlines () [1] .split (",")) ,
    5. Верните список, начиная со второго элемента, как первый пустой в Список (f.readlines () [1] .split (",")) [1:] , а также
    6. Распечатайте результат в Распечатать (список (f.readlines () [1] .split (",")) [1:]) Отказ

Нет конкретной документации, поскольку эта база кода использует стандартную библиотеку, которая встроена в Python.

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

Вариант 2 (наиболее предпочтительно): используйте Pandas.rad_csv ()

Самый предпочтительный вариант чтения .csv. Файл использует библиотеку Pandas ( Pandas читовные листы здесь ). Pandas – это быстрый, мощный, гибкий и простой в использовании инструмент анализа данных и манипуляции с открытым исходным кодом, построенный сверху Python Programming язык.

Панда обычно используется для более продвинутых данных анализа данных, где данные хранятся в «DataFrame», который в основном похож на таблицу в Excel. Dataframe имеет строку заголовка и столбец индекса, чтобы вы могли обратиться к значениям таблицы по пересечению значений столбца X ROW.

Сценарий:

import os 
import pandas as pd 

path = f"C:{os.environ['HOMEPATH']}\\Desktop\\data.csv" 
df = pd.read_csv(path, delimiter=",", skiprows=[0]) 
list = df.columns.to_list()[1:] 

print(list) 

Выход:

['QSA.Q.N.I8.W0.S1.S1.N.A.F.F._Z._Z.XDC._T.S.V.N._T',... 'QSA.Q.N.I8.W0.S1.S1.N.A.LE.F89.T._Z.XDC._T.S.V.N._T'] 

Скрипта:

df = pd.read_csv(path, delimiter=",", skiprows=[0])

В этом dataframe переменная DF создан из .csv Файл, выполняя метод Pandas read_csv Отказ В этом случае метод требует нескольких аргументов: Файл , разделитель и Skiprows Отказ

Файл такой же, как используется ранее. Разделитель «», «который является опцией по умолчанию для файлов .csv, и это может быть пропущено. Но приятно знать, что вы можете использовать любой другой разделитель.

list = df.columns.to_list()[1:] 
print(list)

Эта строка выбирает заголовки столбцов и помещает их в список, начиная со второго элемента, идущего вперед. Результат печатается.

За и против : Такой подход относительно быстрый, визуально привлекательный к читателю и полностью регулируется с использованием последовательного подхода. Сравнивая с первым вариантом, когда используются стандартные библиотеки, это требует установки дополнительных пакетов. Я лично верю, что это не проблема, и такой недостаток можно пренебречь. Но другой момент не следует пропустить – объем данных. Этот подход неэффективно, когда вам нужно много «боковых» данных, которые бесполезны для вашей цели.

Полная документация доступна здесь С более направляющими и инструкциями о том, как его использовать.

Вариант 3 (необязательно): использовать CSV.Reader ()

Есть также другой способ, как читать .csv Файлы, которые могут быть полезны в определенных обстоятельствах. CSV Модуль реализует классы для чтения и записи табличных данных в формате CSV. Это позволяет программистам сказать: «Напишите эти данные в формате, предпочтителен Excel, или« чтение данных из этого файла, который был сгенерирован Excel », не зная точных деталей формата CSV, используемого Excel. Программисты могут также описать форматы CSV, понимаемые другими приложениями или определяют свои собственные форматы CSV специального назначения.

Сценарий:

import os import csv 
path = f"C:{os.environ['HOMEPATH']}\\Desktop\\data.csv" 
with open(path, 'r') as f: 
    wines = list(csv.reader(f, delimiter=","))[1][1:] 

Выход:

['QSA.Q.N.I8.W0.S1.S1.N.A.F.F._Z._Z.XDC._T.S.V.N._T',... 'QSA.Q.N.I8.W0.S1.S1.N.A.LE.F89.T._Z.XDC._T.S.V.N._T']

Скрипта:

with open(path, 'r') as f: 
    wines = list(csv.reader(f, delimiter=","))[1][1:] 

CSV.Reader () это метод, который позволяет разбирать .csv Файл с указанным разделителем.

После этого мы выбираем второй ряд, используя первые скобки ” [1] «И после этого выберите все элементы из этого списка, начиная со второго ” [1:] «Использование нарезка .

Как это стандартный пакет, есть документация на Официальный сайт Python :

За и против : Такой подход относительно прост и имеет лишь несколько строк кода. С другой стороны, он требует установки дополнительного пакета.

Резюме

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

Куда пойти отсюда?

Достаточно теории, давайте познакомимся!

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

Практические проекты – это то, как вы обостряете вашу пилу в кодировке!

Вы хотите стать мастером кода, сосредоточившись на практических кодовых проектах, которые фактически зарабатывают вам деньги и решают проблемы для людей?

Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.

Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.

Присоединяйтесь к свободному вебинару сейчас!

Оригинал: “https://blog.finxter.com/how-to-read-a-csv-file-into-a-python-list/”