python - 如何使用python根据列特定值从数据框中提取行
问题描述
目前,我有一个庞大的数据集,下面显示了一个非常小的样本。我想要做的是根据shift列提取行,并从score列中找到每个班次的最后 3 行的最大值,然后将整行提取到新的数据帧中。
例如:每天有两个班次(白天和晚上),对于每个班次,我想找到每个班次最后 3 行的最高分(例如:6 月 26 日,白班> 我想从白班的最后 3 个分数,6 月 26 日。我不想获取每个班次的最高分数并提取该行)并提取整行并将其设置为新的数据框。我想在两个班次的每一天都这样做。
预期的数据帧输出如下:
我尝试使用groupby解决这个问题。但我不知道如何从分数列中找到最大值,只考虑每个班次的最后 3 个分数值。考虑到整个班次的最高分,我这样做了。
解决方案
要获得最后 3 分,请使用groupby
和tail
。要获得最大值,请对score
和进行排序drop_duplicates
:
df.groupby(["Date", "Shift"]).tail(3)
.sort_values("score")
.drop_duplicates(["Date","Shift"], keep="last"))
推荐阅读
- reactjs - 如何将会话中的电子邮件添加到reactjs中的表单中
- java - Selenium - Java - 从网站中提取文本而不改变结构
- ios - AVMutableComposition 不在模拟器上显示帧,但在设备上工作正常
- reactjs - 使用 prevState 语法在对象的对象内设置属性
- javascript - Adding 3 onclicks to one page
- react-native - React Native BackgroundTimer API Fetch respons more than once
- azure-ad-b2c - Azure AD B2C - Populating email in input claim from previous orchestration step and Verify.email not working alongwith
- jmeter - 在 jmeter 中运行 SOAP UI 时出现 404 错误
- android - Glide 花费太多时间在回收站视图网格项中显示图像
- c# - 在 ASP.NET 项目中使用 SqlCommand 和 SqlConnection 对象的最佳方法是什么