特别说明:为了保证网站数据的使用,以下所有关于网站地址信息全部隐藏!
获取X球Xapp中利物浦球队3年的数据进行分析。分析内容:
主客场平均进球数S主客场平均失球数赛季进球数、丢球数、平均进球数、平均丢球数年度进球数、传球成功率、犯规数、黄牌数、红牌数使用Fiddler+夜游神模拟器分析系统,找出关键性url,相关配置及抓取方法再次不做说明!
def lwp_jstj():
# ! 利物浦的技术统计
# ? 2021-2022的技术统计
url = 'https://xxx.xxx.xxx/soccer/biz/dqd/team/statistic/50000516?app=dqd&lang=zh-cn&season_id=18252'
r_resopnse = get(url=url, headers=headers)
with open('C://lwp_2021_2022.json', 'w', encoding='utf-8') as f:
json.dump(r_resopnse.json(), f, ensure_ascii=False)
# ? 2020-2021的技术统计
url = 'https://xxx.xxx.xxx/soccer/biz/dqd/team/statistic/50000516?app=dqd&lang=zh-cn&season_id=17139'
r_resopnse = get(url=url, headers=headers)
with open('C://lwp_2020_2021.json', 'w', encoding='utf-8') as f:
json.dump(r_resopnse.json(), f, ensure_ascii=False)
# ? 2019-2020的技术统计
url = 'https://xxx.xxx.xxx/soccer/biz/dqd/team/statistic/50000516?app=dqd&lang=zh-cn&season_id=14931'
r_resopnse = get(url=url, headers=headers)
with open('C://lwp_2019_2020.json', 'w', encoding='utf-8') as f:
json.dump(r_resopnse.json(), f, ensure_ascii=False)
print('利物浦的技术统计')提取关键数据,保存为excel文件 def lwp_jstj_to_excel():
# ! 读取利物浦技术统计数据保存excel文件
name_list = ['lwp_2019_2020.json','lwp_2020_2021.json','lwp_2021_2022.json']
jq = []
kq = []
fg = []
y_p = []
r_p = []
for i in name_list:
with open(f'C:/Users/Administrator/Desktop/dqd/lwp/{i}','r',encoding='utf-8') as f:
obj = json.load(f)
# ? 进球数
jq.append(obj['statistics']['attack'][0]['number'])
# ? 传球成功率
kq.append(obj['statistics']['organize'][1]['number'])
# ? 犯规
fg.append(obj['statistics']['discipline'][0]['number'])
# ? 黄牌
y_p.append(obj['statistics']['discipline'][1]['number'])
# ? 红牌
r_p.append(obj['statistics']['discipline'][2]['number'])
df = pd.DataFrame({'进球数':jq,'传球成功率':kq,'犯规':fg,'黄牌':y_p,'红牌':r_p})
df.insert(loc=0,column='年份',value=pd.Series(['2019-2020','2020-2021','2021-2022']))
df.to_excel('C:/Users/Administrator/Desktop/dqd/lwp/lwp_jstj.xlsx',index=False)
print('OK')数据分析,绘制柱状图 def lwp_sjfx_num3():
# ! 分析3个赛季的进球数 传球成功率 犯规数 黄牌数 红牌数
df = pd.read_excel(r'C:/Users/Administrator/Desktop/dqd/lwp/lwp_jstj.xlsx')
animals = ['2019-2020年', '2020-2021年', '2021-2022年']
fig = go.Figure(data=[
go.Bar(name='进球数', x=animals, y=df['进球数']),
go.Bar(name='传球成功率', x=animals, y=df['传球成功率']),
go.Bar(name='犯规数', x=animals, y=df['犯规']),
go.Bar(name='黄牌数', x=animals, y=df['黄牌']),
go.Bar(name='红牌书', x=animals, y=df['红牌']),
])
fig.update_layout(barmode='group')
fig.show()最后形成的图样如下 def lwp_all_score():
# ! 所有比赛场次比分。分主客场。胜负
# ? 2021-2022年数据
url = 'https://xxx.xxx.xxx/soccer/biz/dqd/team/schedule/50000516?app=dqd&version=284&lang=zh-cn&season=2021-2022'
r_response = get(url=url, headers=headers)
with open(r'C:\Users\Administrator\Desktop\dqd\lwp\lwp_all_scorse_2021_2022.json', 'w', encoding='utf-8') as f:
json.dump(r_response.json(), f, ensure_ascii=False)
# ? 2020-2021年数据
url = 'https://xxx.xxx.xxx/soccer/biz/dqd/team/schedule/50000516?app=dqd&version=284&lang=zh-cn&season=2020-2021'
r_response = get(url=url, headers=headers)
with open(r'C:\Users\Administrator\Desktop\dqd\lwp\lwp_all_scorse_2020_2021.json', 'w', encoding='utf-8') as f:
json.dump(r_response.json(), f, ensure_ascii=False)
# ? 2019-2020年数据
url = 'https://xxx.xxx.xxx/soccer/biz/dqd/team/schedule/50000516?app=dqd&version=284&lang=zh-cn&season=2019-2020'
r_response = get(url=url, headers=headers)
with open(r'C:\Users\Administrator\Desktop\dqd\lwp\lwp_all_scorse_2019_2020.json', 'w', encoding='utf-8') as f:
json.dump(r_response.json(), f, ensure_ascii=False)
print('利物浦3年比赛数据保存完毕')提取关键数据,保存excel文件 def lwp_all_scorse_to_excel():
name_list = ['lwp_all_scorse_2019_2020','lwp_all_scorse_2020_2021','lwp_all_scorse_2021_2022']
df = pd.DataFrame(columns=['team_a','team_b','fs_A','fs_B','score_color'])
n = 1
for i in name_list:
with open(f'C:/Users/Administrator/Desktop/dqd/lwp/{i}' + '.json','r',encoding='utf-8') as f:
obj = json.load(f)
for key in obj['data']:
team_a = key["team_A_name"]
team_b = key["team_B_name"]
fs_A = key["fs_A"]
fs_B = key["fs_B"]
score_color = key["score_color"]
# ! 循环增加一行
df.loc[n]=[team_a,team_b,fs_A,fs_B,score_color]
n += 1
df.to_excel(f'C:/Users/Administrator/Desktop/dqd/lwp/{i}' + '.xlsx',index=False)
print('OK') 数据分析:三个赛季分别进多少球,丢多少球,平均进球数,平均失球数 def lwp_sjfx_num1():
# ! 三个赛季分别的进多少球,丢多少球,平均进球数,平均失球数
name_list = ['lwp_all_scorse_2019_2020','lwp_all_scorse_2020_2021','lwp_all_scorse_2021_2022']
jqs_sum = []
jqs_mean = []
sqs_sum = []
sqs_mean = []
for i in name_list:
df = pd.read_excel( f'C:/Users/Administrator/Desktop/dqd/lwp/{i}' + '.xlsx')
# ? 主场进球和失球统计
team_a= df[df['team_a']=='利物浦']
team_b= df[df['team_b']=='利物浦']
jqs_sum.append(team_a['fs_A'].sum()+team_b['fs_B'].sum())
sqs_sum.append(team_a['fs_B'].sum()+team_b['fs_A'].sum())
# ! int型目前无法保存3位
jqs_mean.append((team_a['fs_A'].sum()+team_b['fs_B'].sum())/len(df))
sqs_mean.append((team_a['fs_B'].sum()+team_b['fs_A'].sum())/len(df))
print(jqs_sum,sqs_sum,jqs_mean,sqs_mean)
# ! 折线图
animals = ['2019-2020年', '2020-2021年', '2021-2022年']
fig = go.Figure(data=[
go.Scatter(name='进球数', x=animals, y=jqs_sum),
go.Scatter(name='丢球数', x=animals, y=sqs_sum),
go.Scatter(name='平均进球数', x=animals, y=jqs_mean),
go.Scatter(name='平均失球数', x=animals, y=sqs_mean),
])
fig.show()数据分析:三个赛季分别的主场平均进球&失球数,客场平均进球&失球数 def lwp_sjfx_num2():
# ! 三个赛季分别的主场平均进球&失球数,客场平均进球&失球数
name_list = ['lwp_all_scorse_2019_2020','lwp_all_scorse_2020_2021','lwp_all_scorse_2021_2022']
team_a_jqs = []
team_a_sqs = []
team_b_jqs = []
team_b_sqs = []
for i in name_list:
df = pd.read_excel( f'C:/Users/Administrator/Desktop/dqd/lwp/{i}' + '.xlsx')
# ? 筛选主场
team_a = df[df.team_a=='利物浦']
# ? 主场平均进球数
# ! round 是保留小数点后2位 float型可以,int型不可以
team_a_jqs.append(team_a['fs_B'].mean().round(2))
# ? 主场平均失球数
team_a_sqs.append(team_a['fs_A'].mean().round(2))
# ? 筛选客场
team_b = df[df.team_b=='利物浦']
# # ? 客场总数
# len_lwp_team_b = len(lwp_team_b)
# ? 客场平均进球数
team_b_jqs.append(team_b['fs_B'].mean().round(2))
# ? 客场平均失球数
team_b_sqs.append(team_b['fs_A'].mean().round(2))
# print(team_a_jqs,team_a_sqs,team_b_jqs,team_b_sqs)
# ! 折线图
animals = ['2019-2020年', '2020-2021年', '2021-2022年']
fig = go.Figure(data=[
go.Scatter(name='主场平均进球数', x=animals, y=team_a_jqs),
go.Scatter(name='主场平均失球数', x=animals, y=team_a_sqs),
go.Scatter(name='客场平均进球数', x=animals, y=team_b_jqs),
go.Scatter(name='客场平均失球数', x=animals, y=team_b_sqs),
])
fig.show()图样展示结果版权声明:我们致力于保护作者版权,注重分享,被刊用文章【python数据分析案例(Python项目实例)】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!;
工作时间:8:00-18:00
客服电话
电子邮件
beimuxi@protonmail.com
扫码二维码
获取最新动态
