【问题标题】:How to iterate through multiple urls (teams) to combine NBA players names and stats into one dataframe?如何遍历多个网址(球队)以将 NBA 球员的姓名和统计数据组合到一个数据框中?
【发布时间】:2021-04-12 20:59:10
【问题描述】:

我仍在学习网络抓取,如果我能得到任何帮助,我将不胜感激。感谢社区的帮助,我能够成功地抓取 NBA 球员数据(球员姓名和球员统计数据)并将数据连接到一个数据帧中。

下面是代码:

import pandas as pd
import requests

url = 'https://www.espn.com/nba/team/stats/_/name/lal/season/2020/seasontype/2'
df = pd.read_html(url)
df_concat = pd.concat([df[0], df[1], df[3]], axis=1)

我现在想遍历多个 url 以获取不同团队的数据,然后将所有不同的团队合并到一个数据帧中。

这是我目前的代码:

import pandas as pd

teams = ['chi','den','lac']
for team in teams:
    print(team)
   
    url = 'https://www.espn.com/nba/team/stats/_/name/{team}/season/2020/seasontype/2'.format(team=team)
    print(url)
       
    df = pd.read_html(url)
   
    df_concat = pd.concat([df[0], df[1], df[3]], axis=1)

我尝试将 url 中的“lal”更改为变量 team。当我运行这个脚本时,scrape 非常非常慢,并且只给了我团队“lac”的数据框,而不是“chi”或“den”。对最好的方法有什么建议吗?我从未尝试过抓取多个网址。

同样,如果可能,我会将每个团队的数据合并到一个大型数据框中。提前感谢您提供的任何帮助。我将从这个项目中学到很多东西。 =)

【问题讨论】:

    标签: python dataframe url concatenation


    【解决方案1】:

    原理相同,使用pd.concat 和数据框列表。例如:

    import requests
    import pandas as pd
    
    teams = ["chi", "den", "lac"]
    dfs_to_concat = []
    for team in teams:
        print(team)
        url = "https://www.espn.com/nba/team/stats/_/name/{team}/season/2020/seasontype/2".format(
            team=team
        )
        print(url)
    
        df = pd.read_html(url)
        df_concat = pd.concat([df[0], df[1], df[3]], axis=1)
        dfs_to_concat.append(df_concat)
    
    df_final = pd.concat(dfs_to_concat)
    print(df_final)
    df_final.to_csv("data.csv", index=False)
    

    打印:

    chi
    https://www.espn.com/nba/team/stats/_/name/chi/season/2020/seasontype/2
    den
    https://www.espn.com/nba/team/stats/_/name/den/season/2020/seasontype/2
    lac
    https://www.espn.com/nba/team/stats/_/name/lac/season/2020/seasontype/2
                            Name  GP    GS   MIN    PTS    OR    DR   REB   AST   STL  BLK    TO    PF  AST/TO    PER   FGM   FGA   FG%   3PM   3PA    3P%   FTM   FTA    FT%   2PM   2PA    2P%  SC-EFF  SH-EFF
    0             Zach LaVine SG  60  60.0  34.8   25.5   0.7   4.1   4.8   4.2   1.5  0.5   3.4   2.2     1.2  19.52   9.0  20.0  45.0   3.1   8.1   38.0   4.5   5.6   80.2   5.9  11.9   49.7   1.276    0.53
    1         Lauri Markkanen PF  50  50.0  29.8   14.7   1.2   5.1   6.3   1.5   0.8  0.5   1.6   1.9     0.9  14.32   5.0  11.8  42.5   2.2   6.3   34.4   2.5   3.1   82.4   2.8   5.5   51.8   1.247    0.52
    2              Coby White PG  65   1.0  25.8   13.2   0.4   3.1   3.5   2.7   0.8  0.1   1.7   1.8     1.6  11.92   4.8  12.2  39.4   2.0   5.8   35.4   1.6   2.0   79.1   2.8   6.4   43.0   1.085    0.48
    3         Otto Porter Jr. SF  14   9.0  23.6   11.9   0.9   2.5   3.4   1.8   1.1  0.4   0.8   2.2     2.3  15.87   4.4  10.0  44.3   1.7   4.4   38.7   1.4   1.9   70.4   2.7   5.6   48.7   1.193    0.53
    4       Wendell Carter Jr. C  43  43.0  29.2   11.3   3.2   6.2   9.4   1.2   0.8  0.8   1.7   3.8     0.7  15.51   4.3   8.0  53.4   0.1   0.7   20.7   2.6   3.5   73.7   4.1   7.3   56.4   1.411    0.54
    5          Thaddeus Young PF  64  16.0  24.9   10.3   1.5   3.5   4.9   1.8   1.4  0.4   1.6   2.1     1.1  13.36   4.2   9.4  44.8   1.2   3.5   35.6   0.7   1.1   58.3   3.0   5.9   50.1   1.097    0.51
    6        Tomas Satoransky SG  65  64.0  28.9    9.9   1.2   2.7   3.9   5.4   1.2  0.1   2.0   2.1     2.7  13.52   3.6   8.5  43.0   1.0   3.1   32.2   1.6   1.9   87.6   2.7   5.4   49.1   1.169    0.49
    7       Chandler Hutchison F  28  10.0  18.8    7.8   0.6   3.2   3.9   0.9   1.0  0.3   1.0   1.7     1.0  12.45   2.9   6.3  45.7   0.4   1.4   31.6   1.6   2.8   59.0   2.4   4.9   49.6   1.246    0.49
    8               Kris Dunn PG  51  32.0  24.9    7.3   0.5   3.2   3.6   3.4   2.0  0.3   1.3   3.1     2.5  12.15   3.0   6.7  44.4   0.6   2.2   25.9   0.8   1.1   74.1   2.4   4.5   53.5   1.091    0.49
    9        Denzel Valentine SG  36   5.0  13.6    6.8   0.3   1.8   2.1   1.2   0.7  0.2   0.7   1.4     1.7  13.09   2.7   6.6  40.9   1.3   3.8   33.6   0.2   0.2   75.0   1.4   2.8   51.0   1.038    0.51
    10             Luke Kornet C  36  14.0  15.5    6.0   0.6   1.7   2.3   0.9   0.3  0.7   0.4   1.5     2.3  12.70   2.3   5.2  43.8   0.9   3.0   28.7   0.6   0.8   71.4   1.4   2.2   64.6   1.150    0.52
    11          Daniel Gafford C  43   7.0  14.2    5.1   1.2   1.3   2.5   0.5   0.3  1.3   0.7   2.3     0.7  16.21   2.2   3.1  70.1   0.0   0.0    0.0   0.7   1.4   53.3   2.2   3.1   70.1   1.642    0.70
    12      Shaquille Harrison G  43  10.0  11.3    4.9   0.5   1.5   2.0   1.1   0.8  0.4   0.4   1.3     2.6  17.81   1.8   3.8  46.7   0.4   1.0   38.1   0.9   1.2   78.0   1.4   2.9   49.6   1.267    0.52
    13       Ryan Arcidiacono PG  58   4.0  16.0    4.5   0.3   1.6   1.9   1.7   0.5  0.1   0.6   1.7     2.6   9.04   1.6   3.8  40.9   0.9   2.4   39.1   0.5   0.7   71.1   0.6   1.4   43.9   1.186    0.53
    14      Cristiano Felicio PF  22   0.0  17.5    3.9   2.5   2.1   4.6   0.7   0.5  0.1   0.8   1.5     0.9  12.79   1.5   2.5  63.0   0.0   0.1    0.0   0.8   1.0   78.3   1.5   2.4   65.4   1.593    0.63
    15            Adam Mokoka SG  11   0.0  10.2    2.9   0.6   0.3   0.9   0.4   0.4  0.0   0.2   1.5     2.0   8.18   1.1   2.5  42.9   0.5   1.4   40.0   0.2   0.4   50.0   0.5   1.2   46.2   1.143    0.54
    16              Max Strus SG   2   0.0   3.0    2.5   0.5   0.0   0.5   0.0   0.0  0.0   0.0   0.5     0.0  30.82   1.0   1.5  66.7   0.0   0.5    0.0   0.5   0.5  100.0   1.0   1.0  100.0   1.667    0.67
    17                     Total  65   NaN   NaN  106.8  10.5  31.4  41.9  23.2  10.0  4.1  14.6  21.8     1.6    NaN  39.6  88.6  44.7  12.2  35.1   34.8  15.5  20.5   75.5  27.4  53.5   51.1   1.205    0.52
    0             Nikola Jokic C  73  73.0  32.0   19.9   2.3   7.5   9.7   7.0   1.2  0.6   3.1   3.0     2.3  24.97   7.7  14.7  52.8   1.1   3.5   31.4   3.4   4.1   81.7   6.6  11.2   59.4   1.359    0.56
    1            Jamal Murray PG  59  59.0  32.3   18.5   0.8   3.2   4.0   4.8   1.1  0.3   2.2   1.7     2.2  17.78   6.9  15.2  45.6   1.9   5.5   34.6   2.8   3.1   88.1   5.0   9.7   51.9   1.220    0.52
    2             Will Barton SF  58  58.0  33.0   15.1   1.3   5.0   6.3   3.7   1.1  0.5   1.5   2.1     2.4  15.70   5.7  12.7  45.0   1.9   5.0   37.5   1.8   2.3   76.7   3.9   7.8   49.8   1.184    0.52
    3            Jerami Grant SF  71  24.0  26.6   12.0   0.8   2.7   3.5   1.2   0.7  0.8   0.9   2.2     1.4  14.46   4.3   8.9  47.8   1.4   3.5   38.9   2.1   2.8   75.0   2.9   5.4   53.7   1.342    0.56
    4            Paul Millsap PF  51  48.0  24.3   11.6   1.9   3.8   5.7   1.6   0.9  0.6   1.4   2.9     1.2  16.96   4.1   8.6  48.2   1.1   2.4   43.5   2.3   2.8   81.6   3.1   6.2   50.0   1.349    0.54
    5             Gary Harris SG  56  55.0  31.8   10.4   0.5   2.4   2.9   2.1   1.4  0.3   1.1   2.1     2.0   9.78   3.9   9.3  42.0   1.3   3.8   33.3   1.3   1.6   81.5   2.6   5.5   47.9   1.119    0.49
    6      Michael Porter Jr. SF  55   8.0  16.4    9.3   1.2   3.5   4.7   0.8   0.5  0.5   0.9   1.8     0.9  19.84   3.5   7.0  50.9   1.1   2.7   42.2   1.1   1.3   83.3   2.4   4.3   56.4   1.337    0.59
    7            Monte Morris PG  73  12.0  22.4    9.0   0.3   1.5   1.9   3.5   0.8  0.2   0.7   1.0     4.8  14.98   3.6   7.8  45.9   0.9   2.4   37.8   1.0   1.2   84.3   2.7   5.4   49.5   1.166    0.52
    8         Malik Beasley SG *  41   0.0  18.2    7.9   0.2   1.7   1.9   1.2   0.8  0.1   0.9   1.2     1.3  10.51   2.9   7.3  38.9   1.4   3.9   36.0   0.8   0.9   86.8   1.4   3.4   42.1   1.080    0.49
    9            Mason Plumlee C  61   1.0  17.3    7.2   1.6   3.6   5.2   2.5   0.5  0.6   1.3   2.3     1.9  18.86   2.9   4.7  61.5   0.0   0.1    0.0   1.4   2.5   53.5   2.9   4.6   62.5   1.517    0.61
    10              PJ Dozier SG  29   0.0  14.2    5.8   0.3   1.6   1.9   2.2   0.5  0.2   0.9   1.6     2.3  11.66   2.2   5.4  41.4   0.6   1.7   34.7   0.7   1.0   72.4   1.7   3.7   44.4   1.070    0.47
    11                 Bol Bol C   7   0.0  12.4    5.7   0.7   2.0   2.7   0.9   0.3  0.9   1.4   1.6     0.6  14.41   2.0   4.0  50.0   0.6   1.3   44.4   1.1   1.4   80.0   1.4   2.7   52.6   1.429    0.57
    12           Torrey Craig SF  58  27.0  18.5    5.4   1.1   2.2   3.3   0.8   0.4  0.6   0.4   2.3     1.9  10.79   2.1   4.6  46.1   0.8   2.4   32.6   0.4   0.6   61.1   1.4   2.3   60.3   1.171    0.54
    13     Keita Bates-Diop SF *   7   0.0  14.0    5.3   0.6   1.9   2.4   0.0   0.3  0.6   0.4   1.0     0.0  12.13   1.9   4.0  46.4   0.4   1.3   33.3   1.1   1.4   80.0   1.4   2.7   52.6   1.321    0.52
    14          Troy Daniels G *   6   0.0  12.7    4.3   0.0   1.0   1.0   0.5   0.5  0.0   0.5   1.2     1.0   5.35   1.7   4.7  35.7   1.0   3.3   30.0   0.0   0.0    0.0   0.7   1.3   50.0   0.929    0.46
    15  Juancho Hernangomez PF *  34   0.0  12.4    3.1   0.7   2.1   2.8   0.6   0.1  0.1   0.5   0.9     1.2   6.89   1.1   3.2  34.5   0.4   1.8   25.0   0.5   0.7   64.0   0.7   1.5   46.0   0.973    0.41
    16          Jordan McRae G *   4   0.0   8.0    2.3   0.3   1.0   1.3   1.0   0.5  0.3   0.0   0.5     inf  16.74   0.5   1.5  33.3   0.5   1.0   50.0   0.8   1.0   75.0   0.0   0.5    0.0   1.500    0.50
    17            Tyler Cook F *   2   0.0   9.5    2.0   1.0   1.0   2.0   0.0   1.0  0.0   1.0   0.5     0.0  11.31   0.5   1.0  50.0   0.0   0.0    0.0   1.0   1.0  100.0   0.5   1.0   50.0   2.000    0.50
    18           Noah Vonleh F *   7   0.0   4.3    1.9   0.4   0.7   1.1   0.3   0.0  0.0   0.3   0.6     1.0  17.61   0.7   0.9  83.3   0.1   0.1  100.0   0.3   0.6   50.0   0.6   0.7   80.0   2.167    0.92
    19          Vlatko Cancar SF  14   0.0   3.2    1.2   0.4   0.4   0.7   0.2   0.1  0.1   0.2   0.5     1.0  11.45   0.4   1.1  40.0   0.1   0.4   16.7   0.3   0.3  100.0   0.4   0.6   55.6   1.133    0.43
    20    Jarred Vanderbilt PF *   9   0.0   4.6    1.1   0.3   0.6   0.9   0.2   0.3  0.1   0.8   0.7     0.3   7.20   0.6   0.8  71.4   0.0   0.0    0.0   0.0   0.0    0.0   0.6   0.8   71.4   1.429    0.71
    21                     Total  73   NaN   NaN  111.3  10.8  33.4  44.1  26.7   8.0  4.6  13.1  20.3     2.0    NaN  42.0  88.9  47.3  11.0  30.6   35.9  16.2  20.9   77.7  31.1  58.3   53.3   1.252    0.53
    0           Kawhi Leonard SF  57  57.0  32.4   27.1   0.9   6.1   7.1   4.9   1.8  0.6   2.6   2.0     1.9  26.91   9.3  19.9  47.0   2.2   5.7   37.8   6.2   7.1   88.6   7.2  14.2   50.6   1.362    0.52
    1             Paul George SG  48  48.0  29.6   21.5   0.5   5.2   5.7   3.9   1.4  0.4   2.6   2.4     1.5  21.14   7.1  16.3  43.9   3.3   7.9   41.2   4.0   4.5   87.6   3.9   8.4   46.4   1.321    0.54
    2         Montrezl Harrell C  63   2.0  27.8   18.6   2.6   4.5   7.1   1.7   0.6  1.1   1.7   2.3     1.0  23.26   7.5  12.9  58.0   0.0   0.3    0.0   3.7   5.6   65.8   7.5  12.6   59.3   1.445    0.58
    3            Lou Williams SG  65   8.0  28.7   18.2   0.5   2.6   3.1   5.6   0.7  0.2   2.8   1.2     2.0  17.38   6.0  14.4  41.8   1.7   4.8   35.2   4.5   5.2   86.1   4.3   9.6   45.1   1.266    0.48
    4     Marcus Morris Sr. SF *  19  19.0  28.9   10.1   0.6   3.5   4.1   1.4   0.7  0.7   1.3   2.7     1.1   8.96   3.9   9.2  42.5   1.4   4.4   31.0   0.9   1.2   81.8   2.5   4.7   53.3   1.103    0.50
    5        Reggie Jackson PG *  17   6.0  21.3    9.5   0.4   2.6   3.0   3.2   0.3  0.2   1.6   2.2     1.9  12.66   3.4   7.5  45.3   1.5   3.7   41.3   1.1   1.2   90.5   1.9   3.8   49.2   1.258    0.55
    6           Landry Shamet SG  53  30.0  27.4    9.3   0.1   1.8   1.9   1.9   0.4  0.2   0.8   2.7     2.4   8.51   3.0   7.4  40.4   2.1   5.6   37.5   1.2   1.4   85.5   0.9   1.8   49.5   1.258    0.55
    7              Ivica Zubac C  72  70.0  18.4    8.3   2.7   4.8   7.5   1.1   0.2  0.9   0.8   2.3     1.3  21.75   3.3   5.3  61.3   0.0   0.0    0.0   1.7   2.3   74.7   3.3   5.3   61.6   1.548    0.61
    8        Patrick Beverley PG  51  50.0  26.3    7.9   1.1   4.1   5.2   3.6   1.1  0.5   1.3   3.1     2.8  12.54   2.9   6.7  43.1   1.6   4.0   38.8   0.6   0.9   66.0   1.3   2.6   49.6   1.188    0.55
    9          JaMychal Green PF  63   1.0  20.7    6.8   1.2   4.9   6.2   0.8   0.5  0.4   0.9   2.8     0.9  11.11   2.4   5.6  42.9   1.5   3.8   38.7   0.6   0.8   75.0   0.9   1.8   51.8   1.222    0.56
    10     Maurice Harkless SF *  50  38.0  22.8    5.5   0.9   3.1   4.0   1.0   1.0  0.6   0.9   2.4     1.0   9.70   2.2   4.3  51.6   0.5   1.5   37.0   0.5   0.8   57.1   1.7   2.9   59.0   1.267    0.58
    11      Patrick Patterson PF  59  18.0  13.2    4.9   0.6   2.0   2.6   0.7   0.1  0.1   0.4   0.9     2.0  11.57   1.6   3.9  40.8   1.1   2.9   39.0   0.6   0.7   81.4   0.5   1.0   45.9   1.253    0.55
    12       Mfiondu Kabengele F  12   0.0   5.3    3.5   0.1   0.8   0.9   0.2   0.2  0.2   0.2   0.8     1.0  18.28   1.2   2.7  43.8   0.8   1.7   45.0   0.4   0.4  100.0   0.4   1.0   41.7   1.313    0.58
    13        Rodney McGruder SG  56   4.0  15.6    3.3   0.5   2.2   2.7   0.6   0.5  0.1   0.4   1.3     1.5   6.75   1.3   3.2  39.8   0.4   1.6   27.0   0.3   0.6   55.9   0.9   1.6   52.2   1.033    0.46
    14            Amir Coffey SG  18   1.0   8.8    3.2   0.2   0.7   0.9   0.8   0.3  0.1   0.4   1.1     1.8   8.55   1.3   3.0  42.6   0.3   1.1   31.6   0.3   0.6   54.5   0.9   1.9   48.6   1.074    0.48
    15      Jerome Robinson SG *  42   1.0  11.3    2.9   0.1   1.3   1.4   1.1   0.3  0.2   0.6   1.3     1.8   4.86   1.1   3.2  33.8   0.5   1.6   28.4   0.3   0.5   57.9   0.6   1.6   39.1   0.897    0.41
    16             Joakim Noah C   5   0.0  10.0    2.8   1.0   2.2   3.2   1.4   0.2  0.2   1.2   1.8     1.2  11.11   0.8   1.6  50.0   0.0   0.0    0.0   1.2   1.6   75.0   0.8   1.6   50.0   1.750    0.50
    17           Terance Mann SG  41   6.0   8.8    2.4   0.2   1.1   1.3   1.3   0.3  0.1   0.4   1.1     2.9  10.58   0.9   1.9  46.8   0.2   0.5   35.0   0.4   0.7   66.7   0.7   1.4   50.8   1.253    0.51
    18    Derrick Walton Jr. G *  23   1.0   9.7    2.2   0.1   0.6   0.7   1.0   0.2  0.0   0.2   0.8     5.5   8.43   0.7   1.6  47.2   0.4   0.9   42.9   0.3   0.4   77.8   0.3   0.7   53.3   1.389    0.60
    19        Johnathan Motley F  13   0.0   3.2    2.2   0.2   0.5   0.8   0.6   0.2  0.0   0.4   0.5     1.6  28.53   0.8   1.2  73.3   0.1   0.1  100.0   0.4   0.5   71.4   0.8   1.1   71.4   1.867    0.77
    20                     Total  72   NaN   NaN  116.3  10.7  37.0  47.7  23.7   7.1  4.7  14.0  22.1     1.7    NaN  41.6  89.2  46.6  12.4  33.5   37.1  20.8  26.3   79.1  29.1  55.8   52.2   1.304    0.54
    

    并创建data.csv:

    【讨论】:

    • 哇!非常感谢@Andrej Kesely 先生花时间解释这一点!我很感激。 =) 这非常有用,我会从你的回答中学到很多东西。
    猜你喜欢
    • 2012-05-20
    • 2023-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-22
    • 1970-01-01
    • 2011-06-22
    • 1970-01-01
    相关资源
    最近更新 更多