Автор оригинала: 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 означает «разделенные запятыми значениями». Как подразумевает имя, это всего лишь список элементов, разделенных запятыми. Это самый простой формат для передачи данных и должен использоваться, если
- Вам нужен самый компактный размер файла или
- У вас есть плоская структура данных.
Имейте в виду, что файлы CSV не дают вам такую гибкость в представлении данных как два других параметра.
Статьи по Теме:
- Pandas DataFrame. к CSV
- Как преобразовать список списков в файл CSV в Python?
Пример задачи
Это реальная задача в упрощенной форме. Цель состоит в том, чтобы прочитать данные из файла CSV (70 КБ) и образуют список всех серийных кодов, присутствующих во второй строке.
Предоставленные данные являются открытыми статистическими данными от Европейского центрального банка (ECB) в формате CSV и представляют финансовые потоки в течение периода. Файл состоит из трех основных полей:
- Код серии
- Наблюдаемая дата (период, например, 2019Q4, 2020к1 и т. Д.)
- Наблюдаемое значение (точка данных, номер поплавка)
Прямая ссылка для скачивания.
Подготовка данных
Чтобы сосредоточиться на параметре на разборке, я предлагаю вам загрузить и извлекать файл заранее. В примерах файл будет размещен на рабочем столе, но вы можете поставить его куда угодно.
Сценарий:
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:])
Оператор импорта и переменное назначение пропущено так, как было описано ранее, и основное внимание уделяется последним заявлениям.
Это комбинированное изложение трех частей:
- Заявление «С», в общем смысле, позволяет нам определить, какой код код (действия) мы хотим сделать с объектом, пока оно «активно». В этом случае мы хотим сказать Python, что он должен выполнять некоторые действия, пока файл открыт, и когда все заявления будут завершены, закройте его.
- Оператор «Open» позволяет нам открывать файл и место в памяти Python. В этом случае мы открываем ранее данный файл («Путь» переменную) в режиме «R», который обозначает режим «READ» -ONLY.
- Заявление «Print» позволяет увидеть вывод на экране. В этом случае мы
- принять файл объект
F
сОткрыть (путь, 'r') как f
С - Прочитайте вторую строку с
f.readlines () [1]
С - Разделить линию по
,
сепаратор вf.readlines () [1] .split (",")
, - Преобразовать в список в список
Список (f.readlines () [1] .split (","))
, - Верните список, начиная со второго элемента, как первый пустой в
Список (f.readlines () [1] .split (",")) [1:]
, а также - Распечатайте результат в
Распечатать (список (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/”