为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕工程0101907 2021-09-01 19:29:19
我有一个带有计数器的数据框,每 24 行增加 1,还有一个值列,如下所示。    value   counter0   0.00    11   0.00    12   0.00    13   0.00    14   0.00    15   0.00    16   0.00    17   0.00    18   55.00   19   90.00   110  49.27   111  51.80   112  49.06   113  43.46   114  45.96   115  43.95   116  45.00   117  43.97   118  42.00   119  41.14   120  43.92   121  51.74   122  40.85   123  0.00    224  0.00    225  0.00    226  0.00    227  0.00    228  0.00    229  0.00    2...     ...     ...187     82.38   9188     66.89   9189     59.83   9190     52.46   9191     40.48   9192     28.87   9193     41.90   9194     42.56   9195     40.93   9196     40.02   9197     36.54   9198     33.70   9199     38.99   9200     46.10   9201     44.82   9202     0.00    9203     0.00    9204     0.00    9205     0.00    9206     0.00    9207     0.00    10208     0.00    10209     0.00    10210     74.69   10211     89.20   10212     74.59   10213     55.11   10214     58.39   10215     40.81   10216     45.06   10我想知道是否有办法在计数器具有相同值的每个组中创建具有 4 个最低值的第三列。
查看完整描述

1 回答

?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

我认为您需要首先过滤掉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 2

0    0.00        1     0.00

1    0.00        1     0.00

2    0.00        1     0.00

3    0.00        1     0.00

4    0.00        1     0.00

5    0.00        1     0.00

6    0.00        1     0.00

7    0.00        1     0.00

8   55.00        1     0.00

9   90.00        1     0.00

10  49.27        1     0.00

11  51.80        1     0.00

12  49.06        1     0.00

13  43.46        1    43.46

14  45.96        1     0.00

15  43.95        1     0.00

16  45.00        1     0.00

17  43.97        1     0.00

18  42.00        1    42.00

19  41.14        1    41.14

20  43.92        1     0.00

21  51.74        1     0.00

22  40.85        1    40.85

23   0.00        2     0.00

24   0.00        2     0.00

25   0.00        2     0.00

26   0.00        2     0.00

27   0.00        2     0.00



查看完整回答
反对 回复 2021-09-01
  • 1 回答
  • 0 关注
  • 126 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号