如何创建仅包含赛果为0-0的已完赛预定赛事的DataFrame
如何创建仅包含0-0已完赛赛事的DataFrame?
没问题,我来帮你梳理并完善代码,实现只展示赛果为0-0的已完赛预定赛事的DataFrame需求:
完整代码实现
import pandas as pd # 读取意甲赛事页面的表格数据 url = 'https://fbref.com/it/comp/11/calendario/Risultati-e-partite-di-Serie-A' df = pd.read_html(url)[0] # 只保留我们需要的核心字段:轮次、日期、主队、比分、客队 filtered_columns_df = df[['Sett.', 'Data', 'Casa', 'Punteggio', 'Ospiti']] # 筛选出赛果为0-0的已完赛赛事 # 重点注意:数据中的比分是长破折号「–」,不是普通短破折号,必须匹配正确才能筛选到结果 zero_zero_matches_df = filtered_columns_df.loc[filtered_columns_df['Punteggio'] == '0–0'].reset_index(drop=True) # 打印查看最终结果 print(zero_zero_matches_df)
关键步骤解释
- 数据读取:
pd.read_html(url)[0]会自动抓取网页中的第一个表格(也就是fbref上的意甲赛事结果表),转换成DataFrame格式。 - 字段筛选:只保留
Sett.(轮次)、Data(日期)、Casa(主队)、Punteggio(比分)、Ospiti(客队)这些你需要的字段,精简数据结构。 - 比分匹配:必须使用数据中实际的长破折号「–」来匹配
0–0,如果误用普通短破折号「-」会导致筛选不到任何结果。 - 索引重置:
reset_index(drop=True)会把筛选后的结果索引重新从0开始排列,让DataFrame的结构更整洁。
另外补充一点:fbref的赛事表中,只有已完赛的赛事才会显示具体比分(未开赛的赛事比分栏为空),所以通过Punteggio == '0–0'筛选出来的结果天然就是已完赛的赛事,不需要额外判断。
内容的提问来源于stack exchange,提问作者Emanuele Negri
相关产品推荐
相关产品推荐

