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

如何用Pandas对无线电信号采样CSV进行1秒分辨率下采样?

Pandas实现每行每4列取均值(降低时间采样分辨率)

完全可以用Pandas实现每行按连续4列分组取均值,正好匹配你从0.25秒/列降到1秒/列的需求,核心思路是通过groupby对列进行分组,再计算每组均值:

核心代码实现

方法1:列名为连续数字时(比如你的列是0到3599)

# 假设你的数据已读入为DataFrame df
df_resampled = df.groupby(lambda col: col // 4, axis=1).mean()

方法2:通用适配(不管列名是什么格式)

如果列名不是连续数字(比如是时间字符串),可以用列的位置索引来分组:

import numpy as np

df_resampled = df.groupby(np.arange(len(df.columns)) // 4, axis=1).mean()

原理说明

  • np.arange(len(df.columns)) // 4会生成一组分组键:前4列对应键0,接下来4列对应键1,以此类推,正好把每4个0.25秒的采样列合并为1个1秒的采样列
  • axis=1指定按列方向分组,对每组内的列计算均值,最终每行会得到900个结果(3600÷4=900),完全符合1秒/列的分辨率要求

小例子验证

可以用测试数据快速验证效果:

import pandas as pd
import numpy as np

# 构造2行8列的测试数据(模拟2秒的采样)
df = pd.DataFrame(np.arange(16).reshape(2,8), columns=[0,1,2,3,4,5,6,7])
# 分组求均值
df_resampled = df.groupby(lambda col: col//4, axis=1).mean()
print(df_resampled)

输出结果:

0     1
0  1.5  5.5
1  9.5  13.5

可见每4列的均值计算正确,完全符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 14:50:57