Как писать программы на Python, которые автоматически анализируют наборы научных данных

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

Автоматическое открытие каждого файла данных

Первым шагом в автоматическом анализе каждого файла данных является их открытие. Однако, поскольку мы хотим автоматически анализировать множество файлов, мы не можем просто написать строку кода, открывающую определенный файл; вместо этого мы создаем структуру, которая последовательно открывает каждый файл в проекте. Это можно сделать с помощью glob, pandas, цикла for и следующих шагов:

  • Во-первых, сохраните все файлы из проекта в определенной папке. Полезно иметь все файлы в одной папке, потому что тогда вам нужно указать программе только один путь. Если вы воспользовались рекомендациями по динамическим именам файлов из части 2, вы сможете определить различия между тестами, не сохраняя файлы в разных папках.
  • Во-вторых, используйте пакет glob для создания списка всех файлов в этой папке, которые соответствуют типу ваших файлов данных. Функция glob.glob идеально подходит для этой цели и требует только путь и тип файла в качестве входных данных. Например, если вы хотите открыть все файлы в папке, вы можете использовать следующие три строки кода (переменная Path составлена ​​и должна быть изменена в соответствии с вашим конкретным случаем). Первая строка импортирует пакет glob, вторая строка сообщает коду, где находятся файлы, а третья строка создает переменную с именем «Имена файлов», которая заполняется всеми файлами .csv в папке, указанной путем.
import glob
Path = r'C:\Users\JSmith\Documents\AutomatedDataAnalysis\Example'
Filenames = glob.glob(Path, '/*.csv')
  • В-третьих, создайте цикл for, который перебирает каждый из этих файлов. Открытие кода и анализ этих файлов можно сохранить в цикле for. Тем самым вы создаете ряд шагов анализа, которые программа будет последовательно выполнять для каждого файла в именах файлов. Но сначала нам нужно создать цикл for. Это можно сделать с помощью следующего кода, который создает новую переменную «Имя файла», которая будет временно хранить каждый путь, хранящийся в «Именах файлов»:
for Filename in Filenames:
  • Наконец, нам нужно открыть файл. Предполагая, что данные хранятся в файлах .csv, вы можете открыть их с помощью функции pandas.read_csv. Предполагая, что ваш предыдущий код импортировал pandas, вы можете открыть каждый файл, добавив следующую строку в цикл for:
Data = pd.read_csv(Filename)

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

Автоматический анализ каждого набора данных

Открыв файл, программа может перейти к фактическому анализу данных. Этот процесс должен быть строго настроен для каждого проекта, поскольку расчеты должны быть адаптированы к этому конкретному проекту. Из-за этого ограничения в этом разделе будут даны несколько советов для новичков в Python, а не будут приведены конкретные шаги, которым нужно следовать. Несколько важных советов включают в себя:

  • Открытие файлов с помощью pandas.read_csv создало объект pandas DataFrame, содержащий данные из этого файла. DataFrame по сути является таблицей. Открытие файла таким образом дает доступ ко всем возможностям обработки данных pandas. Если вы не знакомы с теми, кто рассматривает возможность просмотра документации pandas для получения советов.
  • Вычисления в Python можно выполнять с любым количеством полезных пакетов. Для этой части проекта pandas и numpy, вероятно, обеспечат наиболее важную функциональность. Цель состоит в том, чтобы найти пакеты и написать код, выполняющий все необходимые вычисления для каждого файла.
  • Если вам нужно настроить таргетинг на определенную часть каждого файла, не забудьте отфильтровать данные, используя метод, аналогичный описанному в части 2.
  • Используйте matplotlib, bokeh или другой пакет для отображения результатов по мере необходимости.
  • Когда вы закончите свои расчеты, вы можете распечатать результат с помощью функции pandas DataFrame.to_csv. Обязательно дайте ему новое имя файла, чтобы избежать перезаписи файла необработанных данных.

Следующие шаги

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