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

如何将包含文件名与通道集合的数组转换为指定格式DataFrame

具体实现方法

我们可以借助pandas库完成转换,核心逻辑是先把交替存储的文件名、通道集合拆分整理,再合并为目标结构的DataFrame,步骤如下:

  • 第一步:拆分原始数组,提取文件名和对应的通道集合映射关系
  • 第二步:对每个文件名做截断处理,仅保留去掉路径和扩展名的部分作为列名
  • 第三步:将每个通道集合转换为单列Series,统一拼接后将缺失值替换为空字符串即可

完整实现代码如下:

import os
import pandas as pd

# 原始输入数组
raw_data = ['preprocessed\\AB_30624_badchannels.set', {'E88', 'E91', 'E248', 'E139', 'E245', 'E216', 'E111'}, 'preprocessed\\ACM_98630_badchannels.set', {'E88', 'E186', 'E91', 'E139', 'E102', 'E216', 'E111', 'E238'}, 'preprocessed\\AL_96705_badchannels.set', {'E88', 'E37', 'E91'}]

# 按成对拆分,整理为(文件名,通道集合)的结构
file_channel_pairs = [(raw_data[i], raw_data[i+1]) for i in range(0, len(raw_data), 2)]

# 生成每个列对应的Series
series_list = []
for file_path, channels in file_channel_pairs:
    # 处理文件名:提取无路径、无扩展名的部分作为列名
    col_name = os.path.splitext(os.path.basename(file_path))[0]
    # 通道集合转Series,加sorted可以保证通道按字符顺序排列,不需要可直接去掉sorted
    s = pd.Series(sorted(list(channels)), name=col_name)
    series_list.append(s)

# 合并所有Series,缺失值替换为空字符串
result_df = pd.concat(series_list, axis=1).fillna('')

# 如果需要输出为示例里的竖线分隔格式,可执行下面的代码
print(result_df.to_csv(sep='|', index=False))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 22:09:02