用 elasticsearch search 索引数据。输入文件多匹配查询是dob和last name。它有相同的学生。因此该文件也作为输出。有关于删除低分行的想法。我该如何接近?
Filename Name DOB Score PageNumber
11086 Ram 11 06 1930 6.4504585 1
11086 Ram 11 06 1930 6.4504585 2
11086 Ram 11 06 1930 6.4504585 1
81564 Kiran 11 06 1930 3.5517883 2
81564 Kiran 11 06 1930 3.5517883 33
81564 Kiran 11 06 1930 3.5517883 12
754133 peter 11 06 1930 2.5905614 1
754133 peter 11 06 1930 2.5905614 1
期望的输出
Filename Name DOB Score PageNumber
11086 Ram 11 06 1930 6.4504585 1
11086 Ram 11 06 1930 6.4504585 2
11086 Ram 11 06 1930 6.4504585 1
请您参考如下方法:
假设您只需要得分大于 3
df.query('Score > 3')
Filename Name DOB Score PageNumber
0 11086 Ram 11 06 1930 6.450458 1
1 11086 Ram 11 06 1930 6.450458 2
2 11086 Ram 11 06 1930 6.450458 1
3 81564 Kiran 11 06 1930 3.551788 2
4 81564 Kiran 11 06 1930 3.551788 33
5 81564 Kiran 11 06 1930 3.551788 12
假设你想按标准差的倍数过滤
df[df.Score > (df.Score.mean() - 1 * df.Score.std())]
Filename Name DOB Score PageNumber
0 11086 Ram 11 06 1930 6.450458 1
1 11086 Ram 11 06 1930 6.450458 2
2 11086 Ram 11 06 1930 6.450458 1
3 81564 Kiran 11 06 1930 3.551788 2
4 81564 Kiran 11 06 1930 3.551788 33
5 81564 Kiran 11 06 1930 3.551788 12
或者你可以只抓取等于最大值的行
df.query('Score == @df.Score.max()')
Filename Name DOB Score PageNumber
0 11086 Ram 11 06 1930 6.450458 1
1 11086 Ram 11 06 1930 6.450458 2
2 11086 Ram 11 06 1930 6.450458 1
或者
df[df.Score == df.Score.max()]
Filename Name DOB Score PageNumber
0 11086 Ram 11 06 1930 6.450458 1
1 11086 Ram 11 06 1930 6.450458 2
2 11086 Ram 11 06 1930 6.450458 1
