-1

我目前在使用来自 physio 的 Siena Scalp Database 的 EEG 数据时遇到问题。我拥有的 EEG 数据有大约 30 个通道和一个显示癫痫发作时间的文本文件。我编写了一些代码,将结果导出到具有正确频道名称的 excel 文件中,但我没有时间记录。[这是我将 EEG 数据导出为 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 输出中加入这样的内容,以便对于 EEG 数据的每条记录,我都有相应的时间输出。

EEG数据的采样率为512Hz,EDF文件中的通道为Channel 1:Fp1 Channel 2:F3 Channel 3:C3 Channel 4:P3 Channel 5:1 Channel 6:F7
Channel 7:T3 Channel 8:T5 Channel 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:EKG 1
通道 34:EKG 2

请原谅任何格式错误,因为这是我第一次使用 Stack Overflow。我已经包含了图像,希望它会 [1]:https ://i.stack.imgur.com/O38tF.png [2]:https ://i.stack.imgur.com/PnZkg.png

4

1 回答 1

0

我假设 edf 文件已经有可以使用 mne 模块读取的时间戳。因此,我建议使用它而不是生成新的时间戳。mne.io.Raw 方法to_data_frame将对象转换为 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”作为值。有关更多信息,我建议您阅读文档。

于 2021-04-04T01:09:06.633 回答