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

按行迭代计算每100元素均值:DataFrame秒级数据转换需求

高效计算传感器数据的秒级均值

你完全不需要嵌套循环——Pandas和Numpy的向量化操作能更高效地完成这个任务,而且代码更简洁。以下是具体实现方案:

1. 读取原始数据(如果还未加载)

import pandas as pd
import numpy as np

# 加载txt数据到DataFrame
df = pd.read_csv('https://raw.githubusercontent.com/Arancium98/ucihydraulic/main/Data/PS1.txt', sep='\s+', header=None)

2. 核心:向量化生成秒级均值

利用Numpy的reshape将整份数据直接重塑为三维结构(2205行 × 60秒 × 100个样本/秒),然后直接沿样本维度求均值:

# 重塑数据结构:(周期数, 秒数, 每秒样本数)
reshaped_data = df.values.reshape(2205, 60, 100)
# 对每秒的100个样本求均值,生成新的DataFrame
Seconds = pd.DataFrame(reshaped_data.mean(axis=2))

3. 备选:用apply实现(可读性优先)

如果你更倾向于逐行处理的逻辑,也可以用apply结合分组求均值,虽然速度比向量化稍慢,但代码逻辑直观:

# 对每行按每100个元素分组,计算每组均值
Seconds = df.apply(lambda row: row.groupby(np.arange(len(row)) // 100).mean(), axis=1)

为什么不用嵌套循环?

嵌套循环是Python级别的逐元素操作,对于2205行×6000列的数据,运行效率会比向量化操作低几个数量级——Numpy的向量化操作是基于C实现的,能大幅提升处理速度。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 12:42:38