![](/img/trans.png)
[英]Pandas DataFrames: How to locate rows using index values in existing dataframe based on values from another dataframe column?
[英]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 个分数,请使用groupby
和tail
。 要获得最大值,请对score
和drop_duplicates
排序:
df.groupby(["Date", "Shift"]).tail(3)
.sort_values("score")
.drop_duplicates(["Date","Shift"], keep="last"))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.