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

如何获取DataFrame一维展开后连续3元素滚动和最小值?现有方法未达预期

解决方法

你的问题在于原代码是按列独立计算滚动和,而你需要的是将所有元素按行优先顺序展开后,计算连续3个元素的滚动和。以下是正确的实现步骤:

步骤1:将DataFrame展平为一维序列

首先把DataFrame的所有元素按「S1第一行→S2第一行→S3第一行→S1第二行→...」的顺序转换成一个一维序列:

import pandas as pd

df = pd.DataFrame({
    'S1':[38.868, 39.231, 39.427, 38.992, 39.071, 39.003],
    'S2':[63.631, 63.239, 63.463, 63.675, 63.571, 63.692],
    'S3':[35.406, 35.483, 35.107, 35.346, 35.413, 35.362]
})

# 展平为一维序列
flattened_series = pd.Series(df.values.flatten())

步骤2:计算滚动和并获取最小值

对展平后的序列应用滚动窗口求和,再提取最小值:

# 计算连续3个元素的滚动和
rolling_sums = flattened_series.rolling(window=3, min_periods=3).sum()

# 获取滚动和中的最小值
min_rolling_sum = rolling_sums.min()

print(min_rolling_sum)  # 输出结果约为 137.562

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 04:14:51