首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用BeautifulSoup抓取表,并且输出多次具有列名

使用BeautifulSoup抓取表,并且输出多次具有列名
EN

Stack Overflow用户
提问于 2022-07-12 03:50:36
回答 2查看 52关注 0票数 0

我对BeautifulSoup和一般编程都很陌生,在从表中抓取数据时遇到了困难。当我将其转换为DataFrame时,输出将多次显示列名,我不知道如何删除它们。当我试图重塑df时,它只允许我一次重塑五行,而不是所有行,我不知道为什么。

代码语言:javascript
运行
复制
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的输出如下所示。

代码语言:javascript
运行
复制
            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  

这些是我试着搜集的表格,以供参考。

代码语言:javascript
运行
复制
<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>

这是我的第一个正式职位。任何建议或建设性的批评,以提出更好的问题,将不胜感激。谢谢!

EN

回答 2

Stack Overflow用户

发布于 2022-07-12 04:14:18

你是想把所有不同的表放到一个数据文件中吗?看起来,您的代码正在正确地格式化表,但是您正在从具有相同列的网站中为每个表生成一个单独的数据same,因此您最终会一次又一次地打印出每个具有相同列的表。你试图得到它,所以“球队记录联盟分区客场对LHP对RHP.”不会被一遍又一遍地印出来。

解决这一问题的一种方法是使用.concat()将每个单独表的每个数据帧合并为一个

代码语言:javascript
运行
复制
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)
票数 0
EN

Stack Overflow用户

发布于 2022-07-13 07:20:19

BeautifulSoup是解析html的极好工具。事实上,pandas使用它来解析<table>标记。

让熊猫在这里做工作,因为你想要的是在<table>标签内。pandas将将所有<table>标记返回到数据文件列表中。那就是把它们结合在一起的问题。

代码语言:javascript
运行
复制
import pandas as pd

dfs = pd.read_html('https://www.oddsshark.com/mlb/extended-standings')
df = pd.concat(dfs)

输出:

代码语言:javascript
运行
复制
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]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72946829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档