- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经抓取了数据,但需要帮助才能正确解析它。我仍在学习中,并将感谢我能得到的任何建议。
我正在寻找以下两个变量的数据:TEAM、SA/G
这是迄今为止我的代码:
#import modules
from selenium import webdriver
from bs4 import BeautifulSoup
#set path for driver
driver = webdriver.Chrome('C:\webdrivers\chromedriver.exe')
# open page
driver.get('http://www.espn.com/nhl/statistics/team/_/stat/scoring/sort/avgGoals')
# driver.page_source
soup = BeautifulSoup(driver.page_source,'lxml')
#close driver
driver.close()
#grab table data
table = soup.find(class_='tablehead')
#parse data (extra data included)
for t in table:
td_tags = table.find_all('td')
# print(td_tags)
for td in td_tags:
a_tags = table.find('a')
print(td.text)
我已经抓取了正确的数据,但还有一些额外的信息我可以使用帮助解析。关于如何获取 TEAM 和 SA/G 数据有什么建议吗?
这是我正在寻找的 Pandas DataFrame 输出的示例:
Team SA/G
Nashville 30.1
Colorado 33.6
Washington 31.0
预先感谢您提供的任何帮助!
代码更新:
第一次尝试仅获取团队信息并具有额外数据(例如“GP”)。
第一次尝试修复代码:
# parse data (closer to desired output but missing SA/G data)
for tab in table:
tr = table.find_all('tr')
for t in tr:
td = table.find_all('td')
print((t.a.text))
第二次尝试获取了团队数据和 SA/G,但也有额外的数据(例如,每 11 行代码中就有“TEAM”和“SA/G”文本)。
这是第二次尝试:
#parses TEAM and SA/G
import pandas as pd
x = pd.read_html("http://www.espn.com/nhl/statistics/team/_/stat/scoring/sort/avgGoals")[0]
print(x[[1, 9]])
最佳答案
如果您想从 url
读取表格,我会使用方法 read_html
来自 Pandas 。在下面,Pandas 使用 bs4
为您解析网页。您可以在下面看到一个示例:
In [3]: import pandas as pd
In [4]: pd.read_html("http://www.espn.com/nhl/statistics/team/_/stat/scoring/sort/avgGoals")[0]
Out[4]:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
0 RK TEAM GP G GA GF/G GA/G DIFF SF/G SA/G DIFF SVPCT PIM PIMA DIFF
1 1 Nashville 11 45 33 4.09 3.00 1.09 31.9 30.1 01.8 .900 87 109 -22
2 2 Colorado 11 44 30 4.00 2.73 1.27 31.4 33.6 -02.3 .919 102 140 -38
3 3 Washington 13 49 43 3.77 3.31 0.46 30.3 31.0 -00.7 .893 125 111 14
4 4 Vancouver 11 40 26 3.64 2.36 1.27 32.6 31.3 01.4 .924 103 119 -16
5 NaN Montreal 11 40 35 3.64 3.18 0.45 34.4 31.1 03.3 .898 77 83 -6
6 6 Toronto 13 46 44 3.54 3.38 0.15 32.7 32.8 -00.1 .897 88 82 6
7 7 Florida 12 42 45 3.50 3.75 -0.25 34.0 30.0 04.0 .875 78 86 -8
8 NaN Philadelphia 10 35 30 3.50 3.00 0.50 35.4 27.4 08.0 .891 78 90 -12
9 9 Buffalo 13 43 32 3.31 2.46 0.85 30.2 33.5 -03.2 .926 100 118 -18
10 10 Tampa Bay 10 33 32 3.30 3.20 0.10 31.4 34.5 -03.1 .907 100 88 12
11 RK TEAM GP G GA GF/G GA/G DIFF SF/G SA/G DIFF SVPCT PIM PIMA DIFF
12 11 Boston 11 36 23 3.27 2.09 1.18 33.3 31.5 01.7 .934 82 80 2
13 NaN Carolina 11 36 29 3.27 2.64 0.64 32.9 29.4 03.5 .910 97 87 10
14 13 Pittsburgh 12 39 30 3.25 2.50 0.75 31.9 29.8 02.1 .916 82 84 -2
15 14 NY Rangers 9 29 34 3.22 3.78 -0.56 28.2 36.9 -08.7 .898 90 82 8
16 15 St. Louis 12 37 38 3.08 3.17 -0.08 29.0 30.3 -01.3 .895 87 91 -4
17 16 Vegas 13 40 36 3.08 2.77 0.31 35.3 32.7 02.6 .915 143 143 0
18 17 Edmonton 12 36 32 3.00 2.67 0.33 27.9 30.6 -02.7 .913 80 74 6
19 NaN Arizona 11 33 24 3.00 2.18 0.82 31.5 29.8 01.6 .927 68 74 -6
20 NaN NY Islanders 11 33 27 3.00 2.45 0.55 27.6 31.5 -03.8 .922 95 67 28
21 20 Columbus 11 30 39 2.73 3.55 -0.82 33.6 31.1 02.5 .886 75 81 -6
22 RK TEAM GP G GA GF/G GA/G DIFF SF/G SA/G DIFF SVPCT PIM PIMA DIFF
23 21 Ottawa 11 29 36 2.64 3.27 -0.64 31.1 35.0 -03.9 .906 134 110 24
24 22 Calgary 13 34 39 2.62 3.00 -0.38 30.9 31.2 -00.3 .904 147 122 25
25 23 San Jose 12 31 43 2.58 3.58 -1.00 28.3 31.8 -03.4 .887 128 124 4
26 NaN Los Angeles 12 31 49 2.58 4.08 -1.50 37.3 28.3 08.9 .856 102 116 -14
27 25 Winnipeg 12 30 37 2.50 3.08 -0.58 33.2 33.3 -00.1 .907 52 88 -36
28 NaN Chicago 10 25 30 2.50 3.00 -0.50 31.6 32.9 -01.3 .909 66 68 -2
29 27 Anaheim 13 32 31 2.46 2.38 0.08 27.5 31.5 -04.0 .924 131 99 32
30 28 New Jersey 9 22 34 2.44 3.78 -1.33 29.3 29.0 00.3 .870 99 93 6
31 29 Minnesota 11 26 37 2.36 3.36 -1.00 29.5 30.4 -00.8 .889 87 93 -6
32 30 Detroit 12 27 45 2.25 3.75 -1.50 31.5 33.2 -01.7 .887 105 96 9
33 RK TEAM GP G GA GF/G GA/G DIFF SF/G SA/G DIFF SVPCT PIM PIMA DIFF
34 31 Dallas 13 25 35 1.92 2.69 -0.77 27.8 28.8 -01.1 .907 89 79 10
关于python - 如何使用 Python 解析 NHL Team Defense 统计数据以创建 Pandas DataFrame?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58602261/
pandas.crosstab 和 Pandas 数据透视表似乎都提供了完全相同的功能。有什么不同吗? 最佳答案 pivot_table没有 normalize争论,不幸的是。 在 crosstab
我能找到的最接近的答案似乎太复杂:How I can create an interval column in pandas? 如果我有一个如下所示的 pandas 数据框: +-------+ |
这是我用来将某一行的一列值移动到同一行的另一列的当前代码: #Move 2014/15 column ValB to column ValA df.loc[(df.Survey_year == 201
我有一个以下格式的 Pandas 数据框: df = pd.DataFrame({'a' : [0,1,2,3,4,5,6], 'b' : [-0.5, 0.0, 1.0, 1.2, 1.4,
所以我有这两个数据框,我想得到一个新的数据框,它由两个数据框的行的克罗内克积组成。正确的做法是什么? 举个例子:数据框1 c1 c2 0 10 100 1 11 110 2 12
TL;DR:在 pandas 中,如何绘制条形图以使其 x 轴刻度标签看起来像折线图? 我制作了一个间隔均匀的时间序列(每天一个项目),并且可以像这样很好地绘制它: intensity[350:450
我有以下两个时间列,“Time1”和“Time2”。我必须计算 Pandas 中的“差异”列,即 (Time2-Time1): Time1 Time2
从这个 df 去的正确方法是什么: >>> df=pd.DataFrame({'a':['jeff','bob','jill'], 'b':['bob','jeff','mike']}) >>> df
我想按周从 Pandas 框架中的列中累积计算唯一值。例如,假设我有这样的数据: df = pd.DataFrame({'user_id':[1,1,1,2,2,2],'week':[1,1,2,1,
数据透视表的表示形式看起来不像我在寻找的东西,更具体地说,结果行的顺序。 我不知道如何以正确的方式进行更改。 df示例: test_df = pd.DataFrame({'name':['name_1
我有一个数据框,如下所示。 Category Actual Predicted 1 1 1 1 0
我有一个 df,如下所示。 df: ID open_date limit 1 2020-06-03 100 1 2020-06-23 500
我有一个 df ,其中包含与唯一值关联的各种字符串。对于这些唯一值,我想删除不等于单独列表的行,最后一行除外。 下面使用 Label 中的各种字符串值与 Item 相关联.所以对于每个唯一的 Item
考虑以下具有相同名称的列的数据框(显然,这确实发生了,目前我有一个像这样的数据集!:() >>> df = pd.DataFrame({"a":range(10,15),"b":range(5,10)
我在 Pandas 中有一个 DF,它看起来像: Letters Numbers A 1 A 3 A 2 A 1 B 1 B 2
如何减去两列之间的时间并将其转换为分钟 Date Time Ordered Time Delivered 0 1/11/19 9:25:00 am 10:58:00 am
我试图理解 pandas 中的下/上百分位数计算,但有点困惑。这是它的示例代码和输出。 test = pd.Series([7, 15, 36, 39, 40, 41]) test.describe(
我有一个多索引数据框,如下所示: TQ bought HT Detailed Instru
我需要从包含值“低”,“中”或“高”的数据框列创建直方图。当我尝试执行通常的df.column.hist()时,出现以下错误。 ex3.Severity.value_counts() Out[85]:
我试图根据另一列的长度对一列进行子串,但结果集是 NaN .我究竟做错了什么? import pandas as pd df = pd.DataFrame([['abcdefghi','xyz'],
我是一名优秀的程序员,十分优秀!