所以我正在尝试过滤 Wyscout 数据集。示例:
问题是我无法确定射门是否进球。
这是我尝试过的代码:
import pandas as pd
df = pd.read_csv('events_England.csv')
shots = df[df.eventName=='Shot']
data = shots[['subEventName', 'pos_orig_x', 'pos_orig_y', 'pos_dest_y', 'pos_dest_x']]
为了解释“事件”应该是射门尝试,结束进球应该是“子事件”。
生成的数据框的图像:
我找不到“目标”子事件名称,无法将其更改为二进制值。
要确定 Wyscout 数据集中的射门是否进球,您需要检查与事件关联的标签。具体来说,标签 101 代表一个目标。
下面是一个代码示例,您可以使用它来识别导致进球的射门。该代码过滤 Shot 类型的事件并检查标签列中是否存在标签 101:
将 pandas 导入为 pd
df = pd.read_csv('events_England.csv')
镜头 = df[df['事件名称'] == '镜头']
shots['is_goal'] = shot['tags'].apply(lambda x: 101 in [tag['id'] for tag in eval(x)])
数据 = 镜头[['subEventName', 'pos_orig_x', 'pos_orig_y', 'pos_dest_x', 'pos_dest_y', 'is_goal']]
打印(数据)
在此代码中,如果射门进球,is_goal 列将显示 True。 eval() 函数用于正确解释标签列的格式,该标签列通常是字典列表。