You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从TUH语料EDF文件按固定顺序读取21通道数据至Excel并保留通道名?

解决方案

要实现固定通道顺序读取并在Excel首行保留通道名称,只需对代码做两处关键修改,以下是完整优化代码:

import numpy as np
import mne
import pandas as pd

# 定义固定的21个通道顺序(核心:所有文件都将按此顺序输出)
FIXED_CHANNELS = [
    'EEG FP1-REF','EEG FP2-REF','EEG F3-REF','EEG F4-REF','EEG C3-REF',
    'EEG C4-REF','EEG P3-REF','EEG P4-REF','EEG O1-REF','EEG O2-REF',
    'EEG F7-REF','EEG F8-REF','EEG T3-REF','EEG T4-REF','EEG T5-REF',
    'EEG T6-REF','EEG A1-REF','EEG A2-REF','EEG FZ-REF','EEG CZ-REF','EEG PZ-REF'
]

# 读取EDF文件
raw = mne.io.read_raw_edf('aaaaaibz_s001_t000.edf', preload=True)

# 按固定顺序选择通道(pick_channels会严格遵循传入列表的顺序返回数据)
edf = raw.pick_channels(FIXED_CHANNELS)

# 获取通道数据并转置(时间点为行,通道为列)
data = edf.get_data()
transposed_data = np.transpose(data)

# 创建DataFrame时指定列名为通道名称,Excel首行自动保留这些名称
df = pd.DataFrame(transposed_data, columns=FIXED_CHANNELS)

# 保存到Excel(index=False去掉默认行号列,输出更整洁)
df.to_excel('ne1-ibz.xlsx', index=False)

关键修改说明:

  • 固定通道顺序:提前定义FIXED_CHANNELS常量,所有EDF文件都将按该列表顺序提取通道数据,彻底解决不同文件通道顺序不一致的问题。mne的pick_channels方法会严格遵循传入列表的顺序返回通道,不受原文件通道顺序影响。
  • 保留通道名称:创建pd.DataFrame时通过columns参数指定列名为通道名称,保存Excel时默认将列名作为首行输出。
  • 额外添加index=False参数,避免生成不必要的行号列,让输出更干净。

若部分EDF文件可能缺失目标通道,可添加容错处理(如跳过缺失通道的文件或填充NaN值),假设你的数据集所有文件均包含这21个通道,上述代码可直接使用。

内容的提问来源于stack exchange,提问作者Prajakta Rathod

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 15:55:35