繁体   English   中英

如何使用python根据列特定值从数据框中提取行

[英]How to extract rows from dataframe based on column specific values using python

目前,我有一个庞大的数据集,下面显示了一个非常小的样本。 我想要做的是根据shift列提取行,​​并从每个 shift 的最后 3 行score列中找到最大值,然后将该整行提取到新的数据框中。

在此处输入图片说明

例如:每天有两个班次(白天和晚上),对于每个班次,我想找到每个班次的最后 3 行的最高分(例如:对于 6 月 26 日,白班>我想从6月 26 日白班的最后 3 个分数。我不想取每个班次的最高分数并提取该行)并提取整行并将其设置为新的数据帧。 我想每天两个班次都这样做。

预期的数据帧输出如下:

在此处输入图片说明

我尝试使用groupby解决这个问题。 但我不知道如何从score列中找到最大值,只考虑每个班次最后 3 个 score values 我这样做是考虑到整个班次的最高分。

要获得最后 3 个分数,请使用groupbytail 要获得最大值,请对scoredrop_duplicates排序:

df.groupby(["Date", "Shift"]).tail(3)
  .sort_values("score")
  .drop_duplicates(["Date","Shift"], keep="last"))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM