Python: как добавить код временной петли While в экспорт CSV EEG для большей ясности

В настоящее время у меня проблемы с данными ЭЭГ, полученными из базы данных Siena Scalp от Physio. Данные ЭЭГ, которые у меня есть, содержат около 30 каналов и текстовый файл, который отображается при возникновении припадка. Я написал код, который экспортирует результаты в файл Excel с правильными именами каналов, но у меня нет записи времени. [Это мой код для экспорта данных ЭЭГ в CSV][1]

Код, экспортирующий данные ЭЭГ

      import numpy as np

import mne
 
edf = mne.io.read_raw_edf(r"Path name from external drive\PN00\PN00-1.edf")

np.savetxt('PN00-1Testv2.csv', edf.get_data().T, delimiter=',')

Я создал простой временной код, но я не знаю, как ввести этот код в мой текущий код. Если бы кто-нибудь мог мне помочь, это было бы здорово [Это мой код временного цикла:] [2]

Код временной петли

      import datetime

import numpy as np

import mne

import pandas as pd

import xlwt

import openpyxl as op


Time_start = datetime.datetime(100,1,1,19,39,33,00) 

Time_increment = datetime.timedelta(milliseconds=0.00195)


x_TimeEnd = datetime.datetime(100,1,1,20,22,58) 


while Time_start <= x_TimeEnd:

    Time_start += datetime.timedelta(milliseconds=0.00195)

    print(Time_start)

Приведенный выше код повторяется до тех пор, пока Time_start не станет меньше или равно x_TimeEnd. Я надеюсь получить что-то подобное в моем выводе Excel, чтобы для каждой записи данных ЭЭГ у меня был соответствующий вывод времени.

Частота дискретизации данных ЭЭГ составляет 512 Гц. Каналы в файлах EDF: Канал 1: Fp1 Канал 2: F3 Канал 3: C3 Канал 4: P3 Канал 5: 1 Канал 6: F7
Канал 7: T3 Канал 8: Канал T5 9: Fc1 Канал 10: Fc5 Канал 11: Cp1
Канал 12: Cp5 Канал 13: F9 Канал 14: Fz Канал 15: Cz Канал 16: Pz
Канал 17: Fp2 Канал 18: F4 Канал 19: C4 Канал 20: P4 Канал 21: O2
Канал 22: F8 Канал 23: T4 Канал 24: T6 Канал 25: Fc2 Канал 26: Fc6
Канал 27: Cp2 Канал 28: Cp6 Канал 29: F10 Канал 33: ЭКГ 1
Канал 34: ЭКГ 2

Прошу прощения за любые ошибки форматирования, так как я впервые использую Stack Overflow. Я включил изображения в надежде, что это будет [1]: https://stackru.com/images/9dc1271cb4a1e895727f9e247d45680d37d5dbe1.png[2]: https://stackru.com/images/5198d9312028aa39cf79b788807d11215bd66a7f.png

1 ответ

Я предполагаю, что в файлах edf уже есть временные метки, которые можно прочитать с помощью модуля mne. Поэтому я предлагаю использовать его вместо создания новых меток времени. Метод to_data_frame mne.io.Raw преобразует объект во фрейм данных pandas и позволяет указать формат времени.

Например:

      import mne
edf = mne.io.read_raw_edf(r"Path name from external drive\PN00\PN00-1.edf")
data = edf.to_data_frame(index="time", time_format="datetime")
data.to_csv("PN00-1Testv3.csv")

Параметр time_format принимает значения None, ms, datetime или timedelta . Для получения дополнительной информации я бы порекомендовал прочитать документацию.

Другие вопросы по тегам