实际上,我有一个类似于下面的数据集,但要大得多。每行都是足球比赛中的一个镜头, Dataframe 包含许多不同的比赛组合(由Match_ID
表示)。
我想过滤在Goal
之后30分钟内发生但在同一场比赛中的射门。因此,我想保留对于同一Match_ID
在当前行之前30分钟内有shot_outcome
进球的行。
但是我想对整个数据集的所有Match_ID
都这样做,所以这里,我想保留第3行和第6行,我该怎么做呢?
| 联系方式|匹配ID|分钟|快照_结果|
| --------------|--------------|--------------|--------------|
| 0|3857257|三|阻塞|
| 1|3857257|二十三|进球|
| 二|4857254|三十|进球|
| 三|4857254|四十五|关闭T|
| 四|4857254|八九|得救了|
| 五|6789234|三十四|进球|
| 六|6789234|四十七|进球|
我是Python的新手,所以我不知道如何处理这个问题。
4条答案
按热度按时间bnl4lu3b1#
可能有更有效的方法来解决这个问题,但这里有一个解决方案:
示例数据
代码
廉价但不完整的验证
5q4ezhmt2#
给定输入DataFrame(分配给
input_df
):res_df
将显示以下内容:| 联系方式|匹配ID|分钟|快照_结果|
| --------------|--------------|--------------|--------------|
| 三|4857254|四十五|关闭T|
| 六|6789234|四十七|进球|
ejk8hzay3#
这里是一个修改后的代码,应该可以满足你的期望。希望这对你有帮助:)
输入数据
| | 匹配ID|分钟|快照_结果|
| --------------|--------------|--------------|--------------|
| 0|3857257|三|阻塞|
| 1|3857257|二十三|进球|
| 二|4857254|三十|进球|
| 三|4857254|四十五|关闭T|
| 四|4857254|八九|得救了|
| 五|6789234|三十四|进球|
| 六|6789234|四十七|进球|
| 七|6789234|四十九|进球|
| 八个|6789234|六十七|进球|
密码
输出
| | 匹配ID|分钟|快照_结果|
| --------------|--------------|--------------|--------------|
| 三|4857254|四十五|关闭T|
| 六|6789234|四十七|进球|
| 七|6789234|四十九|进球|
| 八个|6789234|六十七|进球|
oprakyz74#
这也应该起作用: