我对BeautifulSoup和一般编程都很陌生,在从表中抓取数据时遇到了困难。当我将其转换为DataFrame时,输出将多次显示列名,我不知道如何删除它们。当我试图重塑df时,它只允许我一次重塑五行,而不是所有行,我不知道为什么。
import pandas as pd
import numpy as np
import requests
from bs4 import BeautifulSoup as bs
odds_url = "https://www.oddsshark.com/mlb/extended-standings"
r = requests.get(odds_url)
standings_soup = bs(r_.content, 'html.parser')
tables = standings_soup.find_all('div', {"class":"table-wrapper"})
for tables in tables:
column_names =[th.getText() for th in tables.findAll('tr')[0].findAll('th')][0:10]
trow_data = [td.getText() for td in tables.findAll('td')]
standings_df = pd.DataFrame(np.reshape(trow_data,(5,10)))
standings_df.columns = column_names
standings_df = standings_df
print(standings_df)DataFrame的输出如下所示。
Team Record League Division Home Away vs LHP vs RHP % \
0 Minnesota 48-40 45-35 22-16 25-18 23-22 14-10 34-30 0.5455
1 Cleveland 41-42 33-35 18-17 20-17 21-25 15-12 26-30 0.4940
2 Chi White Sox 41-43 34-40 13-16 19-25 22-18 7-10 34-33 0.4881
3 Detroit 36-49 28-42 18-18 22-24 14-25 10-14 26-35 0.4235
4 Kansas City 32-52 28-44 15-19 16-26 16-26 11-14 21-38 0.3810
Games Back
0 -
1 4.5
2 5
3 10.5
4 14
Team Record League Division Home Away vs LHP vs RHP % \
0 NY Yankees 61-25 57-24 28-14 34-9 27-16 19-8 42-17 0.7093
1 Boston 47-39 42-34 11-20 23-20 24-19 15-6 32-33 0.5465
2 Tampa Bay 45-40 35-34 17-16 25-17 20-23 10-12 35-28 0.5294
3 Toronto 45-42 41-38 16-18 25-18 20-24 7-11 38-31 0.5172
4 Baltimore 43-44 38-40 15-19 25-17 18-27 17-14 26-30 0.4943
Games Back
0 -
1 14
2 15.5
3 16.5
4 18.5 这些是我试着搜集的表格,以供参考。
<caption>American League Central</caption>
<thead><tr><th style="position: absolute; width: 122px;">Team</th><th>Record</th><th>League</th><th>Division</th><th>Home</th><th>Away</th><th>vs LHP</th><th>vs RHP</th><th>%</th><th>Games Back</th></tr></thead>
<tr><th style="position: absolute; width: 122px;">Team</th><th>Record</th><th>League</th><th>Division</th><th>Home</th><th>Away</th><th>vs LHP</th><th>vs RHP</th><th>%</th><th>Games Back</th></tr>
<th style="position: absolute; width: 122px;">Team</th>
<th>Record</th>
<th>League</th>
<th>Division</th>
<th>Home</th>
<th>Away</th>
<th>vs LHP</th>
<th>vs RHP</th>
<th>%</th>
<th>Games Back</th>
<tr><th style="position: absolute; width: 122px;">Team</th><th>Record</th><th>League</th><th>Division</th><th>Home</th><th>Away</th><th>vs LHP</th><th>vs RHP</th><th>%</th><th>Games Back</th></tr>
<thead><tr><th style="position: absolute; width: 122px;">Team</th><th>Record</th><th>League</th><th>Division</th><th>Home</th><th>Away</th><th>vs LHP</th><th>vs RHP</th><th>%</th><th>Games Back</th></tr></thead>
<tbody><tr class=""><td class="td " style="position: absolute; width: 122px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27005">Minnesota</a></td><td class="td ">38-30</td><td class="td ">37-26</td><td class="td ">17-10</td><td class="td ">20-14</td><td class="td ">18-16</td><td class="td ">13-9</td><td class="td ">25-21</td><td class="td ">0.5588</td><td class="td ">-</td></tr><tr class=""><td class="td " style="position: absolute; width: 122px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27024">Cleveland</a></td><td class="td ">34-28</td><td class="td ">26-21</td><td class="td ">12-8</td><td class="td ">16-10</td><td class="td ">18-18</td><td class="td ">13-9</td><td class="td ">21-19</td><td class="td ">0.5484</td><td class="td ">1</td></tr><tr class=""><td class="td " style="position: absolute; width: 122px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27018">Chi White Sox</a></td><td class="td ">31-33</td><td class="td ">27-30</td><td class="td ">10-12</td><td class="td ">13-17</td><td class="td ">18-16</td><td class="td ">7-9</td><td class="td ">24-24</td><td class="td ">0.4844</td><td class="td ">5</td></tr><tr class=""><td class="td " style="position: absolute; width: 122px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/26999">Detroit</a></td><td class="td ">26-40</td><td class="td ">21-35</td><td class="td ">11-14</td><td class="td ">17-22</td><td class="td ">9-18</td><td class="td ">7-11</td><td class="td ">19-29</td><td class="td ">0.3939</td><td class="td ">11</td></tr><tr class=""><td class="td " style="position: absolute; width: 122px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27006">Kansas City</a></td><td class="td ">23-42</td><td class="td ">19-34</td><td class="td ">11-17</td><td class="td ">12-21</td><td class="td ">11-21</td><td class="td ">8-12</td><td class="td ">15-30</td><td class="td ">0.3538</td><td class="td ">13.5</td></tr></tbody>
<tr class=""><td class="td " style="position: absolute; width: 122px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27005">Minnesota</a></td><td class="td ">38-30</td><td class="td ">37-26</td><td class="td ">17-10</td><td class="td ">20-14</td><td class="td ">18-16</td><td class="td ">13-9</td><td class="td ">25-21</td><td class="td ">0.5588</td><td class="td ">-</td></tr>
<td class="td " style="position: absolute; width: 122px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27005">Minnesota</a></td>
<td class="td ">38-30</td>
<td class="td ">37-26</td>
<td class="td ">17-10</td>
<td class="td ">20-14</td>
<td class="td ">18-16</td>
<td class="td ">13-9</td>
<td class="td ">25-21</td>
<td class="td ">0.5588</td>
<td class="td ">-</td>
<tr class=""><td class="td " style="position: absolute; width: 122px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27005">Minnesota</a></td><td class="td ">38-30</td><td class="td ">37-26</td><td class="td ">17-10</td><td class="td ">20-14</td><td class="td ">18-16</td><td class="td ">13-9</td><td class="td ">25-21</td><td class="td ">0.5588</td><td class="td ">-</td></tr>
<tr class=""><td class="td " style="position: absolute; width: 122px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27024">Cleveland</a></td><td class="td ">34-28</td><td class="td ">26-21</td><td class="td ">12-8</td><td class="td ">16-10</td><td class="td ">18-18</td><td class="td ">13-9</td><td class="td ">21-19</td><td class="td ">0.5484</td><td class="td ">1</td></tr>
<tr class=""><td class="td " style="position: absolute; width: 122px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27018">Chi White Sox</a></td><td class="td ">31-33</td><td class="td ">27-30</td><td class="td ">10-12</td><td class="td ">13-17</td><td class="td ">18-16</td><td class="td ">7-9</td><td class="td ">24-24</td><td class="td ">0.4844</td><td class="td ">5</td></tr>
<tr class=""><td class="td " style="position: absolute; width: 122px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/26999">Detroit</a></td><td class="td ">26-40</td><td class="td ">21-35</td><td class="td ">11-14</td><td class="td ">17-22</td><td class="td ">9-18</td><td class="td ">7-11</td><td class="td ">19-29</td><td class="td ">0.3939</td><td class="td ">11</td></tr>
<tr class=""><td class="td " style="position: absolute; width: 122px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27006">Kansas City</a></td><td class="td ">23-42</td><td class="td ">19-34</td><td class="td ">11-17</td><td class="td ">12-21</td><td class="td ">11-21</td><td class="td ">8-12</td><td class="td ">15-30</td><td class="td ">0.3538</td><td class="td ">13.5</td></tr>
<tbody><tr class=""><td class="td " style="position: absolute; width: 122px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27005">Minnesota</a></td><td class="td ">38-30</td><td class="td ">37-26</td><td class="td ">17-10</td><td class="td ">20-14</td><td class="td ">18-16</td><td class="td ">13-9</td><td class="td ">25-21</td><td class="td ">0.5588</td><td class="td ">-</td></tr><tr class=""><td class="td " style="position: absolute; width: 122px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27024">Cleveland</a></td><td class="td ">34-28</td><td class="td ">26-21</td><td class="td ">12-8</td><td class="td ">16-10</td><td class="td ">18-18</td><td class="td ">13-9</td><td class="td ">21-19</td><td class="td ">0.5484</td><td class="td ">1</td></tr><tr class=""><td class="td " style="position: absolute; width: 122px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27018">Chi White Sox</a></td><td class="td ">31-33</td><td class="td ">27-30</td><td class="td ">10-12</td><td class="td ">13-17</td><td class="td ">18-16</td><td class="td ">7-9</td><td class="td ">24-24</td><td class="td ">0.4844</td><td class="td ">5</td></tr><tr class=""><td class="td " style="position: absolute; width: 122px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/26999">Detroit</a></td><td class="td ">26-40</td><td class="td ">21-35</td><td class="td ">11-14</td><td class="td ">17-22</td><td class="td ">9-18</td><td class="td ">7-11</td><td class="td ">19-29</td><td class="td ">0.3939</td><td class="td ">11</td></tr><tr class=""><td class="td " style="position: absolute; width: 122px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27006">Kansas City</a></td><td class="td ">23-42</td><td class="td ">19-34</td><td class="td ">11-17</td><td class="td ">12-21</td><td class="td ">11-21</td><td class="td ">8-12</td><td class="td ">15-30</td><td class="td ">0.3538</td><td class="td ">13.5</td></tr></tbody>
<table class="table table table--striped table--fixed-column" style="padding-left: 122px;"><caption>American League Central</caption><thead><tr><th style="position: absolute; width: 122px;">Team</th><th>Record</th><th>League</th><th>Division</th><th>Home</th><th>Away</th><th>vs LHP</th><th>vs RHP</th><th>%</th><th>Games Back</th></tr></thead><tbody><tr class=""><td class="td " style="position: absolute; width: 122px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27005">Minnesota</a></td><td class="td ">38-30</td><td class="td ">37-26</td><td class="td ">17-10</td><td class="td ">20-14</td><td class="td ">18-16</td><td class="td ">13-9</td><td class="td ">25-21</td><td class="td ">0.5588</td><td class="td ">-</td></tr><tr class=""><td class="td " style="position: absolute; width: 122px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27024">Cleveland</a></td><td class="td ">34-28</td><td class="td ">26-21</td><td class="td ">12-8</td><td class="td ">16-10</td><td class="td ">18-18</td><td class="td ">13-9</td><td class="td ">21-19</td><td class="td ">0.5484</td><td class="td ">1</td></tr><tr class=""><td class="td " style="position: absolute; width: 122px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27018">Chi White Sox</a></td><td class="td ">31-33</td><td class="td ">27-30</td><td class="td ">10-12</td><td class="td ">13-17</td><td class="td ">18-16</td><td class="td ">7-9</td><td class="td ">24-24</td><td class="td ">0.4844</td><td class="td ">5</td></tr><tr class=""><td class="td " style="position: absolute; width: 122px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/26999">Detroit</a></td><td class="td ">26-40</td><td class="td ">21-35</td><td class="td ">11-14</td><td class="td ">17-22</td><td class="td ">9-18</td><td class="td ">7-11</td><td class="td ">19-29</td><td class="td ">0.3939</td><td class="td ">11</td></tr><tr class=""><td class="td " style="position: absolute; width: 122px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27006">Kansas City</a></td><td class="td ">23-42</td><td class="td ">19-34</td><td class="td ">11-17</td><td class="td ">12-21</td><td class="td ">11-21</td><td class="td ">8-12</td><td class="td ">15-30</td><td class="td ">0.3538</td><td class="td ">13.5</td></tr></tbody></table>
<<pseudo>></<pseudo>>
<div class="table-wrapper__overflow" style="padding-top: 60px;"><table class="table table table--striped table--fixed-column" style="padding-left: 122px;"><caption>American League Central</caption><thead><tr><th style="position: absolute; width: 122px;">Team</th><th>Record</th><th>League</th><th>Division</th><th>Home</th><th>Away</th><th>vs LHP</th><th>vs RHP</th><th>%</th><th>Games Back</th></tr></thead><tbody><tr class=""><td class="td " style="position: absolute; width: 122px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27005">Minnesota</a></td><td class="td ">38-30</td><td class="td ">37-26</td><td class="td ">17-10</td><td class="td ">20-14</td><td class="td ">18-16</td><td class="td ">13-9</td><td class="td ">25-21</td><td class="td ">0.5588</td><td class="td ">-</td></tr><tr class=""><td class="td " style="position: absolute; width: 122px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27024">Cleveland</a></td><td class="td ">34-28</td><td class="td ">26-21</td><td class="td ">12-8</td><td class="td ">16-10</td><td class="td ">18-18</td><td class="td ">13-9</td><td class="td ">21-19</td><td class="td ">0.5484</td><td class="td ">1</td></tr><tr class=""><td class="td " style="position: absolute; width: 122px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27018">Chi White Sox</a></td><td class="td ">31-33</td><td class="td ">27-30</td><td class="td ">10-12</td><td class="td ">13-17</td><td class="td ">18-16</td><td class="td ">7-9</td><td class="td ">24-24</td><td class="td ">0.4844</td><td class="td ">5</td></tr><tr class=""><td class="td " style="position: absolute; width: 122px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/26999">Detroit</a></td><td class="td ">26-40</td><td class="td ">21-35</td><td class="td ">11-14</td><td class="td ">17-22</td><td class="td ">9-18</td><td class="td ">7-11</td><td class="td ">19-29</td><td class="td ">0.3939</td><td class="td ">11</td></tr><tr class=""><td class="td " style="position: absolute; width: 122px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27006">Kansas City</a></td><td class="td ">23-42</td><td class="td ">19-34</td><td class="td ">11-17</td><td class="td ">12-21</td><td class="td ">11-21</td><td class="td ">8-12</td><td class="td ">15-30</td><td class="td ">0.3538</td><td class="td ">13.5</td></tr></tbody></table></div>
<div class="table-wrapper " data-once="os-tables"><div class="table-wrapper__overflow" style="padding-top: 60px;"><table class="table table table--striped table--fixed-column" style="padding-left: 122px;"><caption>American League Central</caption><thead><tr><th style="position: absolute; width: 122px;">Team</th><th>Record</th><th>League</th><th>Division</th><th>Home</th><th>Away</th><th>vs LHP</th><th>vs RHP</th><th>%</th><th>Games Back</th></tr></thead><tbody><tr class=""><td class="td " style="position: absolute; width: 122px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27005">Minnesota</a></td><td class="td ">38-30</td><td class="td ">37-26</td><td class="td ">17-10</td><td class="td ">20-14</td><td class="td ">18-16</td><td class="td ">13-9</td><td class="td ">25-21</td><td class="td ">0.5588</td><td class="td ">-</td></tr><tr class=""><td class="td " style="position: absolute; width: 122px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27024">Cleveland</a></td><td class="td ">34-28</td><td class="td ">26-21</td><td class="td ">12-8</td><td class="td ">16-10</td><td class="td ">18-18</td><td class="td ">13-9</td><td class="td ">21-19</td><td class="td ">0.5484</td><td class="td ">1</td></tr><tr class=""><td class="td " style="position: absolute; width: 122px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27018">Chi White Sox</a></td><td class="td ">31-33</td><td class="td ">27-30</td><td class="td ">10-12</td><td class="td ">13-17</td><td class="td ">18-16</td><td class="td ">7-9</td><td class="td ">24-24</td><td class="td ">0.4844</td><td class="td ">5</td></tr><tr class=""><td class="td " style="position: absolute; width: 122px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/26999">Detroit</a></td><td class="td ">26-40</td><td class="td ">21-35</td><td class="td ">11-14</td><td class="td ">17-22</td><td class="td ">9-18</td><td class="td ">7-11</td><td class="td ">19-29</td><td class="td ">0.3939</td><td class="td ">11</td></tr><tr class=""><td class="td " style="position: absolute; width: 122px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27006">Kansas City</a></td><td class="td ">23-42</td><td class="td ">19-34</td><td class="td ">11-17</td><td class="td ">12-21</td><td class="td ">11-21</td><td class="td ">8-12</td><td class="td ">15-30</td><td class="td ">0.3538</td><td class="td ">13.5</td></tr></tbody></table></div></div>
<div class="table-wrapper " data-once="os-tables"><div class="table-wrapper__overflow" style="padding-top: 60px;"><table class="table table table--striped table--fixed-column" style="padding-left: 109px;"><caption>American League East</caption><thead><tr><th style="position: absolute; width: 109px;">Team</th><th>Record</th><th>League</th><th>Division</th><th>Home</th><th>Away</th><th>vs LHP</th><th>vs RHP</th><th>%</th><th>Games Back</th></tr></thead><tbody><tr class=""><td class="td " style="position: absolute; width: 109px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27001">NY Yankees</a></td><td class="td ">49-17</td><td class="td ">46-17</td><td class="td ">24-11</td><td class="td ">29-7</td><td class="td ">20-10</td><td class="td ">15-6</td><td class="td ">34-11</td><td class="td ">0.7424</td><td class="td ">-</td></tr><tr class=""><td class="td " style="position: absolute; width: 109px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27010">Toronto</a></td><td class="td ">38-28</td><td class="td ">35-26</td><td class="td ">12-14</td><td class="td ">21-14</td><td class="td ">17-14</td><td class="td ">7-7</td><td class="td ">31-21</td><td class="td ">0.5758</td><td class="td ">11</td></tr><tr class=""><td class="td " style="position: absolute; width: 109px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27003">Tampa Bay</a></td><td class="td ">36-30</td><td class="td ">29-29</td><td class="td ">11-11</td><td class="td ">21-13</td><td class="td ">15-17</td><td class="td ">9-7</td><td class="td ">27-23</td><td class="td ">0.5455</td><td class="td ">13</td></tr><tr class=""><td class="td " style="position: absolute; width: 109px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27021">Boston</a></td><td class="td ">36-31</td><td class="td ">32-28</td><td class="td ">7-14</td><td class="td ">17-16</td><td class="td ">19-15</td><td class="td ">12-4</td><td class="td ">24-27</td><td class="td ">0.5373</td><td class="td ">13.5</td></tr><tr class=""><td class="td " style="position: absolute; width: 109px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27008">Baltimore</a></td><td class="td ">30-38</td><td class="td ">26-35</td><td class="td ">15-19</td><td class="td ">17-16</td><td class="td ">13-22</td><td class="td ">12-13</td><td class="td ">18-25</td><td class="td ">0.4412</td><td class="td ">20</td></tr></tbody></table></div></div>
<div class="table-wrapper " data-once="os-tables"><div class="table-wrapper__overflow" style="padding-top: 60px;"><table class="table table table--striped table--fixed-column" style="padding-left: 97px;"><caption>American League West</caption><thead><tr><th style="position: absolute; width: 97px;">Team</th><th>Record</th><th>League</th><th>Division</th><th>Home</th><th>Away</th><th>vs LHP</th><th>vs RHP</th><th>%</th><th>Games Back</th></tr></thead><tbody><tr class=""><td class="td " style="position: absolute; width: 97px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27023">Houston</a></td><td class="td ">41-25</td><td class="td ">37-21</td><td class="td ">21-12</td><td class="td ">18-11</td><td class="td ">23-14</td><td class="td ">14-7</td><td class="td ">27-18</td><td class="td ">0.6212</td><td class="td ">-</td></tr><tr class=""><td class="td " style="position: absolute; width: 97px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/26998">LA Angels</a></td><td class="td ">33-36</td><td class="td ">28-28</td><td class="td ">16-12</td><td class="td ">17-18</td><td class="td ">16-18</td><td class="td ">8-10</td><td class="td ">25-26</td><td class="td ">0.4783</td><td class="td ">9.5</td></tr><tr class=""><td class="td " style="position: absolute; width: 97px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27002">Texas</a></td><td class="td ">31-35</td><td class="td ">27-32</td><td class="td ">15-18</td><td class="td ">14-18</td><td class="td ">17-17</td><td class="td ">15-10</td><td class="td ">16-25</td><td class="td ">0.4697</td><td class="td ">10</td></tr><tr class=""><td class="td " style="position: absolute; width: 97px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27011">Seattle</a></td><td class="td ">29-39</td><td class="td ">25-34</td><td class="td ">12-14</td><td class="td ">15-18</td><td class="td ">14-21</td><td class="td ">4-13</td><td class="td ">25-26</td><td class="td ">0.4265</td><td class="td ">13</td></tr><tr class=""><td class="td " style="position: absolute; width: 97px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27016">Oakland</a></td><td class="td ">23-45</td><td class="td ">21-40</td><td class="td ">6-14</td><td class="td ">8-26</td><td class="td ">15-19</td><td class="td ">8-13</td><td class="td ">15-32</td><td class="td ">0.3382</td><td class="td ">19</td></tr></tbody></table></div></div>
<div class="table-wrapper " data-once="os-tables"><div class="table-wrapper__overflow" style="padding-top: 60px;"><table class="table table table--striped table--fixed-column" style="padding-left: 100px;"><caption>National League Central</caption><thead><tr><th style="position: absolute; width: 100px;">Team</th><th>Record</th><th>League</th><th>Division</th><th>Home</th><th>Away</th><th>vs LHP</th><th>vs RHP</th><th>%</th><th>Games Back</th></tr></thead><tbody><tr class=""><td class="td " style="position: absolute; width: 100px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27012">Milwaukee</a></td><td class="td ">38-30</td><td class="td ">36-29</td><td class="td ">22-11</td><td class="td ">15-12</td><td class="td ">23-18</td><td class="td ">11-13</td><td class="td ">27-17</td><td class="td ">0.5588</td><td class="td ">-</td></tr><tr class=""><td class="td " style="position: absolute; width: 100px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27019">St. Louis</a></td><td class="td ">38-30</td><td class="td ">32-21</td><td class="td ">19-10</td><td class="td ">21-13</td><td class="td ">17-17</td><td class="td ">7-6</td><td class="td ">31-24</td><td class="td ">0.5588</td><td class="td ">0</td></tr><tr class=""><td class="td " style="position: absolute; width: 100px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27013">Pittsburgh</a></td><td class="td ">26-39</td><td class="td ">25-36</td><td class="td ">10-22</td><td class="td ">14-19</td><td class="td ">12-20</td><td class="td ">9-15</td><td class="td ">17-24</td><td class="td ">0.4000</td><td class="td ">10.5</td></tr><tr class=""><td class="td " style="position: absolute; width: 100px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27020">Chi Cubs</a></td><td class="td ">25-41</td><td class="td ">23-32</td><td class="td ">13-15</td><td class="td ">13-25</td><td class="td ">12-16</td><td class="td ">8-11</td><td class="td ">17-30</td><td class="td ">0.3788</td><td class="td ">12</td></tr><tr class=""><td class="td " style="position: absolute; width: 100px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27000">Cincinnati</a></td><td class="td ">23-43</td><td class="td ">19-38</td><td class="td ">10-16</td><td class="td ">12-20</td><td class="td ">11-23</td><td class="td ">7-12</td><td class="td ">16-31</td><td class="td ">0.3485</td><td class="td ">14</td></tr></tbody></table></div></div>
<div class="table-wrapper " data-once="os-tables"><div class="table-wrapper__overflow" style="padding-top: 60px;"><table class="table table table--striped table--fixed-column" style="padding-left: 110px;"><caption>National League East</caption><thead><tr><th style="position: absolute; width: 110px;">Team</th><th>Record</th><th>League</th><th>Division</th><th>Home</th><th>Away</th><th>vs LHP</th><th>vs RHP</th><th>%</th><th>Games Back</th></tr></thead><tbody><tr class=""><td class="td " style="position: absolute; width: 110px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27014">NY Mets</a></td><td class="td ">44-24</td><td class="td ">41-21</td><td class="td ">21-8</td><td class="td ">23-10</td><td class="td ">21-14</td><td class="td ">14-10</td><td class="td ">30-14</td><td class="td ">0.6471</td><td class="td ">-</td></tr><tr class=""><td class="td " style="position: absolute; width: 110px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27009">Atlanta</a></td><td class="td ">38-29</td><td class="td ">34-26</td><td class="td ">13-10</td><td class="td ">20-14</td><td class="td ">18-15</td><td class="td ">16-7</td><td class="td ">22-22</td><td class="td ">0.5672</td><td class="td ">5.5</td></tr><tr class=""><td class="td " style="position: absolute; width: 110px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/26995">Philadelphia</a></td><td class="td ">36-32</td><td class="td ">29-28</td><td class="td ">12-16</td><td class="td ">19-17</td><td class="td ">17-15</td><td class="td ">13-8</td><td class="td ">23-24</td><td class="td ">0.5294</td><td class="td ">8</td></tr><tr class=""><td class="td " style="position: absolute; width: 110px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27022">Miami</a></td><td class="td ">29-35</td><td class="td ">25-29</td><td class="td ">17-11</td><td class="td ">15-14</td><td class="td ">14-21</td><td class="td ">8-6</td><td class="td ">21-29</td><td class="td ">0.4531</td><td class="td ">13</td></tr><tr class=""><td class="td " style="position: absolute; width: 110px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27017">Washington</a></td><td class="td ">24-46</td><td class="td ">22-42</td><td class="td ">6-24</td><td class="td ">12-26</td><td class="td ">12-20</td><td class="td ">10-15</td><td class="td ">14-31</td><td class="td ">0.3429</td><td class="td ">21</td></tr></tbody></table></div></div>
<div class="table-wrapper " data-once="os-tables"><div class="table-wrapper__overflow" style="padding-top: 60px;"><table class="table table table--striped table--fixed-column" style="padding-left: 123px;"><caption>National League West</caption><thead><tr><th style="position: absolute; width: 123px;">Team</th><th>Record</th><th>League</th><th>Division</th><th>Home</th><th>Away</th><th>vs LHP</th><th>vs RHP</th><th>%</th><th>Games Back</th></tr></thead><tbody><tr class=""><td class="td " style="position: absolute; width: 123px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27015">LA Dodgers</a></td><td class="td ">40-25</td><td class="td ">31-21</td><td class="td ">14-8</td><td class="td ">20-12</td><td class="td ">20-13</td><td class="td ">14-8</td><td class="td ">26-17</td><td class="td ">0.6154</td><td class="td ">-</td></tr><tr class=""><td class="td " style="position: absolute; width: 123px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/26996">San Diego</a></td><td class="td ">41-27</td><td class="td ">40-26</td><td class="td ">10-10</td><td class="td ">17-13</td><td class="td ">24-14</td><td class="td ">16-7</td><td class="td ">25-20</td><td class="td ">0.6029</td><td class="td ">0.5</td></tr><tr class=""><td class="td " style="position: absolute; width: 123px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/26997">San Francisco</a></td><td class="td ">37-28</td><td class="td ">31-26</td><td class="td ">11-9</td><td class="td ">19-14</td><td class="td ">18-14</td><td class="td ">13-6</td><td class="td ">24-22</td><td class="td ">0.5692</td><td class="td ">3</td></tr><tr class=""><td class="td " style="position: absolute; width: 123px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27007">Arizona</a></td><td class="td ">32-36</td><td class="td ">27-34</td><td class="td ">5-13</td><td class="td ">17-19</td><td class="td ">15-17</td><td class="td ">10-9</td><td class="td ">22-27</td><td class="td ">0.4706</td><td class="td ">9.5</td></tr><tr class=""><td class="td " style="position: absolute; width: 123px;"><a href="https://www.oddsshark.com/stats/team/baseball/mlb/27004">Colorado</a></td><td class="td ">30-37</td><td class="td ">25-31</td><td class="td ">11-11</td><td class="td ">19-19</td><td class="td ">11-18</td><td class="td ">12-12</td><td class="td ">18-25</td><td class="td ">0.4478</td><td class="td ">11</td></tr></tbody></table></div></div>这是我的第一个正式职位。任何建议或建设性的批评,以提出更好的问题,将不胜感激。谢谢!
发布于 2022-07-12 04:14:18
你是想把所有不同的表放到一个数据文件中吗?看起来,您的代码正在正确地格式化表,但是您正在从具有相同列的网站中为每个表生成一个单独的数据same,因此您最终会一次又一次地打印出每个具有相同列的表。你试图得到它,所以“球队记录联盟分区客场对LHP对RHP.”不会被一遍又一遍地印出来。
解决这一问题的一种方法是使用.concat()将每个单独表的每个数据帧合并为一个
import pandas as pd
import numpy as np
import requests
from bs4 import BeautifulSoup as bs
odds_url = "https://www.oddsshark.com/mlb/extended-standings"
r = requests.get(odds_url)
standings_soup = bs(r.content, 'html.parser')
tables = standings_soup.find_all('div', {"class":"table-wrapper"})
dfs = []
for tables in tables:
column_names =[th.getText() for th in tables.findAll('tr')[0].findAll('th')][0:10]
trow_data = [td.getText() for td in tables.findAll('td')]
standings_df = pd.DataFrame(np.reshape(trow_data,(5,10)))
standings_df.columns = column_names
dfs.append(standings_df)
merged_df = pd.concat(dfs, axis=0)
print(merged_df)发布于 2022-07-13 07:20:19
BeautifulSoup是解析html的极好工具。事实上,pandas使用它来解析<table>标记。
让熊猫在这里做工作,因为你想要的是在<table>标签内。pandas将将所有<table>标记返回到数据文件列表中。那就是把它们结合在一起的问题。
import pandas as pd
dfs = pd.read_html('https://www.oddsshark.com/mlb/extended-standings')
df = pd.concat(dfs)输出:
print(df)
Team Record League Division ... vs LHP vs RHP % Games Back
0 Minnesota 48-41 45-35 22-16 ... 14-10 34-31 0.5393 -
1 Cleveland 43-43 35-36 20-18 ... 15-12 28-31 0.5000 3.5
2 Chi White Sox 42-45 35-42 14-18 ... 8-10 34-35 0.4828 5
3 Detroit 37-51 29-44 19-20 ... 11-15 26-36 0.4205 10.5
4 Kansas City 34-53 30-45 17-20 ... 11-14 23-39 0.3908 13
0 NY Yankees 61-26 57-24 28-14 ... 19-8 42-18 0.7011 -
1 Tampa Bay 47-40 37-34 19-16 ... 11-12 36-28 0.5402 14
2 Boston 47-41 42-36 11-22 ... 15-6 32-35 0.5341 14.5
3 Toronto 46-42 41-38 16-18 ... 7-11 39-31 0.5227 15.5
4 Baltimore 44-44 38-40 15-19 ... 17-14 27-30 0.5000 17.5
0 Houston 57-29 49-25 27-13 ... 18-9 39-20 0.6628 -
1 Seattle 45-42 39-37 20-16 ... 7-13 38-29 0.5172 12.5
2 Texas 40-45 32-38 16-19 ... 17-11 23-34 0.4706 16.5
3 LA Angels 38-50 32-41 17-18 ... 11-12 27-38 0.4318 20
4 Oakland 30-59 28-54 9-23 ... 11-18 19-41 0.3371 28.5
0 Milwaukee 49-39 42-37 28-19 ... 14-14 35-25 0.5568 -
1 St. Louis 48-42 42-33 22-14 ... 9-8 39-34 0.5333 2
2 Pittsburgh 38-50 36-43 18-27 ... 15-19 23-31 0.4318 11
3 Chi Cubs 34-53 30-42 20-21 ... 9-16 25-37 0.3908 14.5
4 Cincinnati 33-54 25-49 12-19 ... 8-17 25-37 0.3793 15.5
0 NY Mets 54-34 49-26 27-12 ... 19-14 35-20 0.6136 -
1 Atlanta 53-36 49-33 19-12 ... 22-9 31-27 0.5955 1.5
2 Philadelphia 46-42 39-35 15-19 ... 14-11 32-31 0.5227 8
3 Miami 41-45 36-38 24-16 ... 11-7 30-38 0.4767 12
4 Washington 30-58 25-52 7-33 ... 11-21 19-37 0.3409 24
0 LA Dodgers 56-30 47-26 21-11 ... 17-11 39-19 0.6512 -
1 San Diego 50-39 49-36 18-17 ... 20-12 30-27 0.5618 7.5
2 San Francisco 44-42 37-36 15-14 ... 17-10 27-32 0.5116 12
3 Colorado 39-49 33-41 19-18 ... 17-18 22-31 0.4432 18
4 Arizona 39-49 33-45 11-24 ... 14-12 25-37 0.4432 18
[30 rows x 10 columns]https://stackoverflow.com/questions/72946829
复制相似问题