使用 while 循环获取连续平均值时出错

问题描述 投票:0回答:1

我有一个存储在 df 变量中的数据集。

使用 df.shape 函数得到的 o/p 为 (1271,19)

df = data.copy()
cond = df["CELLNO"] == 1
df = df[cond]
df = df.reset_index()

df.shape

输出:

(1271, 19)

表:

df

输出:

enter image description here

i = 0
j = 20
while j < df.shape[0]:
    
    data = df.copy()
    data_1 = data.loc[i:j]
    mean = np.mean(data_1.RATED_TORQUE_ACTUAL)
    mean_dec = round(mean, 2)
    mean_list.append(mean_dec)
    i += j + 1
    j += 20
print(mean_list)

但是这对于计算平均值的 2 个值来说效果很好,但后来它给出了 nan 作为 o/p

输出:

[876.27, 873.22, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]

我尝试查看我的数据,没有任何单元格为空或空

我想获取每 20 行的特定列平均值,并将其存储在列表中。如果除此之外还有更好的解决方案,那也可以

数据链接:https://drive.google.com/file/d/1gXHZ33pcoWZZWEZ0X5yvow-EDylTGY20/view?usp=sharing

python-3.x list while-loop
1个回答
0
投票

我现在就可以拿到清单了,

由于 'i' 在 2 次循环后增加了 'i + j + 1',所以 'i' 的值大于 'j' 的值

我现在已将 'i' 和 'j' 都增加了 20

谢谢你

© www.soinside.com 2019 - 2024. All rights reserved.