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

如何在Pandas中移除毫秒及对应ECG信号数据,转为秒级格式

毫秒级ECG数据转秒级的Pandas处理方案

嘿,作为Pandas新手面对数十万行的ECG数据确实有点棘手,不过别慌,咱们一步步来搞定把毫秒级数据转成秒级的需求:

第一步:把时间列转成datetime类型

首先得确保你的Time列是Pandas能识别的日期时间格式,不然没法做后续的时间处理。如果原始数据里Time是字符串,用下面的代码转换:

import pandas as pd

# 假设你的数据存在CSV里,先加载进来
df = pd.read_csv('ecg_data.csv')
# 转换Time列为datetime类型
df['Time'] = pd.to_datetime(df['Time'])

第二步:生成秒级时间戳

接下来咱们把带毫秒的时间戳“砍掉”毫秒部分,统一取到秒级。这里用dt.floor('S')可以把时间向下取整到最近的秒,比如2020-10-09 15:55:49.004会变成2020-10-09 15:55:49:

# 新增一个秒级时间列
df['Time_second'] = df['Time'].dt.floor('S')

第三步:按秒级时间聚合数据

现在同一秒内的所有毫秒数据都对应到了同一个秒级时间,接下来要把这些数据合并成一行。这里有两种常见的处理方式,你可以根据需求选:

  • 方式一:保留每个秒的第一条数据
    如果只想保留同一秒内最早采集的那组ECG值,用first():
    df_second = df.groupby('Time_second').first().reset_index()
    
  • 方式二:取同一秒内ECG数据的平均值
    要是想让秒级数据更能代表这一秒的信号水平,取平均值会更合理:
    df_second = df.groupby('Time_second').mean().reset_index()
    

第四步:整理最终数据

最后可以把原来的带毫秒的Time列删掉,只保留咱们需要的秒级时间和ECG数据:

df_second = df_second.drop(columns=['Time'])

这样处理完之后,你就得到了秒级的ECG数据,行数会直接降到原来的1/1000左右,处理起来就轻松多啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 14:57:28