我有一个熊猫数据框,我想要连续连续值的平均数。例如,对于以下数据 a b c d e f g h i j k l p1 0 0 4 4 4 4 4 4 1 4 4 1p2 0 4 4 0 4 4 0 1 4 4 0 1所以 p1 的连续 4 的平均数是 (6+2)/2 = 4 而 p2 是 (2+2+2)/3 = 2还有一种方法可以找到连续值的最小和最大数量吗?即 p1 的最大值为 6。
2 回答
阿波罗的战车
TA贡献1862条经验 获得超6个赞
这适用于 p1。要获得 p2,只要看到正在使用的“iloc”函数,只需将 0 替换为 1。
dict = {0:[],1:[],2:[],3:[],4:[]}
counter = 1
for i in range(len(df.iloc[0])-1):
num = df.iloc[0,i]
num2 = df.iloc[0,i+1]
if num == num2:
counter += 1
else:
dict[num].append(counter)
counter = 1
然后得到连续 4 的平均数:
print(sum(dict[4])/len(dict[4]))
并获得连续 4 的最大数量:
print(max(dict[4]))
添加回答
举报
0/150
提交
取消