熊猫:每 m 行找到 n 个最低值

我有一个带有计数器的数据框,每 24 行增加 1,还有一个值列,如下所示。


    value   counter

0   0.00    1

1   0.00    1

2   0.00    1

3   0.00    1

4   0.00    1

5   0.00    1

6   0.00    1

7   0.00    1

8   55.00   1

9   90.00   1

10  49.27   1

11  51.80   1

12  49.06   1

13  43.46   1

14  45.96   1

15  43.95   1

16  45.00   1

17  43.97   1

18  42.00   1

19  41.14   1

20  43.92   1

21  51.74   1

22  40.85   1

23  0.00    2

24  0.00    2

25  0.00    2

26  0.00    2

27  0.00    2

28  0.00    2

29  0.00    2

...     ...     ...

187     82.38   9

188     66.89   9

189     59.83   9

190     52.46   9

191     40.48   9

192     28.87   9

193     41.90   9

194     42.56   9

195     40.93   9

196     40.02   9

197     36.54   9

198     33.70   9

199     38.99   9

200     46.10   9

201     44.82   9

202     0.00    9

203     0.00    9

204     0.00    9

205     0.00    9

206     0.00    9

207     0.00    10

208     0.00    10

209     0.00    10

210     74.69   10

211     89.20   10

212     74.59   10

213     55.11   10

214     58.39   10

215     40.81   10

216     45.06   10

我想知道是否有办法在计数器具有相同值的每个组中创建具有 4 个最低值的第三列。


慕工程0101907
浏览 127回答 1
1回答

蝴蝶刀刀

我认为您需要首先过滤掉0值 in 的行value,排序sort_values并获取DataFrame.head最高4值,最后添加reindex以填充0不匹配的值:df['value 2'] = (df[df['value'] != 0]                   .sort_values('value')                   .groupby('counter')['value'].head(4)                   .reindex(df.index, fill_value=0))print (df)    value  counter  value 20    0.00        1     0.001    0.00        1     0.002    0.00        1     0.003    0.00        1     0.004    0.00        1     0.005    0.00        1     0.006    0.00        1     0.007    0.00        1     0.008   55.00        1     0.009   90.00        1     0.0010  49.27        1     0.0011  51.80        1     0.0012  49.06        1     0.0013  43.46        1    43.4614  45.96        1     0.0015  43.95        1     0.0016  45.00        1     0.0017  43.97        1     0.0018  42.00        1    42.0019  41.14        1    41.1420  43.92        1     0.0021  51.74        1     0.0022  40.85        1    40.8523   0.00        2     0.0024   0.00        2     0.0025   0.00        2     0.0026   0.00        2     0.0027   0.00        2     0.00
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python