【发布时间】:2020-06-04 06:18:42
【问题描述】:
我有不同的 json 格式数据集,每个文件包含不同的匹配详细信息,但具有相同的列名。我已经隔离了一支球队在一场比赛中的“投篮”。我应该如何修改我的代码,只为不同的比赛拍摄那个特定球队的镜头。
def key_pass(filename):
with open(filename) as f:
comp = json.load(f)
eng = pd.json_normalize(comp)
for team in eng['possession_team.name'].unique():
if team != 'Belgium':
opp = team
eng = pd.json_normalize(comp).assign(Oppn = opp)
eng_pan = eng[['shot.statsbomb_xg','minute','player.name','shot.outcome.name','shot.key_pass_id','location','type.name','play_pattern.name','possession_team.name']]
eng_pan.rename(columns={'shot.statsbomb_xg':'Statsbomb_xG','shot.outcome.name':'Outcome','shot.key_pass_id':'Keypass_id'})
total_attempts = eng_pan.loc[(eng_pan['type.name'] == 'Shot') & (eng_pan['possession_team.name'] == 'Belgium')]
total_attempts.reset_index(drop=True,inplace=True)
return(total_attempts)
当我调用函数时,
total_attempts = key_pass('7584.json')
total_attempts
现在,如果我必须调用另一个文件,我需要该文件中的镜头从前一个文件完成的位置继续。 我应该将文件名作为列表传递吗?并在函数中添加一个 for 循环,但我又该如何追加镜头?
【问题讨论】:
标签: python-3.x pandas dataframe data-science