Python:如何将While-time循环代码添加到EEG CSV导出中以获得更好的清晰度

2024-05-12 14:14:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前在处理来自理疗中心锡耶纳头皮数据库的脑电图数据时遇到了问题。 我掌握的脑电图数据有大约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_TIMEND。我希望能在我的excel输出中得到类似的东西,这样,对于EEG数据的每个记录,我都有一个相应的时间输出

EEG数据的采样率为512Hz 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:EKG 1
第34频道:心电图2

请原谅任何格式错误,因为这是我第一次使用堆栈溢出。我加入了一些图片,希望它能 [1] :https://i.stack.imgur.com/O38tF.png [2] :https://i.stack.imgur.com/PnZkg.png


Tags: 数据代码importdatetimetimeasnp时间
1条回答
网友
1楼 · 发布于 2024-05-12 14:14:01

我假设edf文件已经有时间戳,可以使用mne模块读取。因此,我建议使用它,而不是生成新的时间戳。mne.io.Raw方法to_data_frame将对象转换为数据帧,并允许您指定时间格式

例如:

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”参数将无、“ms”、“datetime”、“eem>或时间增量作为一个值。有关更多信息,我建议您阅读文档

相关问题 更多 >