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

如何对带标签的ECG信号重采样且不破坏标签列?

ECG信号重采样实现(保持标签分段信息)

需求说明

现有一份ECG信号表格,包含以下列:

  • seconds:时间戳(当前步长0.004秒,对应250Hz采样率)
  • amplitude:ECG信号幅度值
  • label_encoding:机器学习多分类标签(取值为24、1、27)
  • bound_or_peak:绘图区域标识(3位二进制,最高位表示分段起始、中位表示峰值、最低位表示分段结束)

需要将数据重采样至0.002秒步长(500Hz采样率),要求对amplitude进行线性插值,同时保证label_encoding和bound_or_peak的分段标识信息不被破坏。

原始数据生成代码

%load_ext google.colab.data_table
import numpy as np
import pandas as pd

# 将NumPy矩阵转换为带列标签的DataFrame
matrix_data = signal.signal_arr

# 定义各列数据类型
dtype_dict = {'seconds': float, 'amplitude': float, 'label_encoding': int, 'bound_or_peak': int}

# 转换为DataFrame并指定类型
df = pd.DataFrame(matrix_data, columns=dtype_dict.keys()).astype(dtype_dict)

# 显示前250行数据
df[:250]

部分数据示例

索引secondsamplitudelabel_encodingbound_or_peak
00.00.03500
860.344-0.085244
1380.552-0.0814
1820.728-0.035274

解决方案

核心思路

基于时间索引执行重采样:对连续变化的amplitude采用线性插值保证信号连续性;对分段标签类列(label_encoding、bound_or_peak)采用向前填充(ffill),确保新插入的采样点继承所在分段的标签,完整保留原有分段信息。

完整实现代码

import pandas as pd
import numpy as np

# 1. 读取数据(替换为你的本地数据路径)
df = pd.read_csv("question.csv")

# 2. 将时间列设置为索引并转换为datetime格式(满足Pandas重采样要求)
df = df.set_index('seconds')
df.index = pd.to_datetime(df.index, unit='s')

# 3. 定义重采样规则:2毫秒步长(对应500Hz采样率)
resample_rule = '2ms'

# 4. 执行重采样,指定各列处理逻辑
resampled_df = df.resample(resample_rule).agg({
    'amplitude': 'interpolate',  # 幅度列线性插值
    'label_encoding': 'ffill',   # 标签列向前填充
    'bound_or_peak': 'ffill'     # 区域标识列向前填充
})

# 5. 恢复数值型时间戳列
resampled_df['seconds'] = resampled_df.index.astype(np.float64) / 1e9

# 6. 重置索引并修正标签列数据类型
resampled_df = resampled_df.reset_index(drop=True)
resampled_df['label_encoding'] = resampled_df['label_encoding'].astype(int)
resampled_df['bound_or_peak'] = resampled_df['bound_or_peak'].astype(int)

# 验证重采样结果
print(resampled_df.head(10))

关键细节说明

  • 时间索引转换:Pandas的resample方法仅支持datetime类型索引,因此先将数值型时间戳转为datetime,重采样后再转换回数值格式。
  • 向前填充逻辑:标签类列的取值是分段式的,新插入的采样点会继承前一个有效标签值,直到遇到下一个标签分界点,完全保留原有分段的边界信息。
  • 线性插值:ECG信号属于连续变化的生理信号,线性插值能最大程度保留信号的原始特征,避免过度失真。

内容的提问来源于stack exchange,提问作者Muhammad Ikhwan Perwira

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 22:28:14