python pandas平均连续值数

我有一个熊猫数据框,我想要连续连续值的平均数。例如,对于以下数据


   a b c d e f g h i j k l 

p1 0 0 4 4 4 4 4 4 1 4 4 1

p2 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。


胡子哥哥
浏览 132回答 2
2回答

长风秋雁

您可以转置您的数据框并使用下面帖子中建议的方法。您将获得一个连续数字计数的数据框,您可以使用它来执行平均值、最小值和最大值。

阿波罗的战车

这适用于 p1。要获得 p2,只要看到正在使用的“iloc”函数,只需将 0 替换为 1。dict = {0:[],1:[],2:[],3:[],4:[]}counter = 1for 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]))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python