将表拆分为多个数据框

用户名

我目前是从beautifulsoup获得此表的,想要将其拆分为多个数据帧,我想在每次绿色标题元素出现时都将其拆分。

这是网页:http : //www.greyhound-data.com/d? page = stadia&st = 1011&land = au&stadiummode =3

这就是我目前拥有的全部内容,因为我无法弄清楚,我已经习惯了这些问题,只是使用单独的表

url = "http://www.greyhound-data.com/d?page=stadia&st=1011&land=au&stadiummode=3"
req = requests.get(url).text
soup = BeautifulSoup(req, 'lxml')


table = soup.find_all("table", attrs={'id': "green"})
table = table[-1]

df = pd.read_html(str(table))[0]

output:

               Year quarter  ...                  Set on
    Distance: 331 m / 362 y  ... Distance: 331 m / 362 y
0                  2020 2nd  ...             15 JUN 2020
1                  2020 1st  ...             23 JAN 2020
2                  2019 4th  ...              6 OCT 2019
3                  2019 3rd  ...              1 SEP 2019
4                  2019 2nd  ...             28 APR 2019
..                      ...  ...                     ...
319                2002 3rd  ...              5 SEP 2002
320                2002 2nd  ...              6 JUN 2002
321                2001 4th  ...             18 OCT 2001
322                2001 3rd  ...             16 AUG 2001
323                2001 2nd  ...             14 JUN 2001

[324 rows x 7 columns]

在此处输入图片说明

安德烈·凯斯利(Andrej Kesely)

此脚本会将表拆分为几个数据框:

import requests
from bs4 import BeautifulSoup
import pandas as pd


url = "http://www.greyhound-data.com/d?page=stadia&st=1011&land=au&stadiummode=3"
req = requests.get(url).text
soup = BeautifulSoup(req, 'lxml')

table = soup.find_all("table", attrs={'id': "green"})[-1]

trs, dfs, all_data = table.select('tr'), [], []
header = [th.get_text(strip=True) for th in trs[0].select('th')]

for tr in trs[2:]:
    if tr.td:
        all_data.append([td.get_text(strip=True) for td in tr.select('td')])
    else:
        dfs.append(pd.DataFrame(all_data, columns=header))
        all_data = []
dfs.append(pd.DataFrame(all_data, columns=header))

# print all DataFrames in list:
for df in dfs:
    print(df)
    print('-' * 160)

印刷品:

   Year quarter running dif.dogs average time avg win time best time        Set by       Set on
0      2020 2nd              226        19.63        19.18     18.79     Data Base  15 JUN 2020
1      2020 1st              255        19.68        19.14     18.58     Wazza Who  23 JAN 2020
..          ...              ...          ...          ...       ...           ...          ...
39     2010 3rd              286        19.85        19.34     18.90  Royal Surfer  15 SEP 2010
40     2010 2nd               92        20.01        19.57     19.28      Paw Form  16 JUN 2010

[41 rows x 7 columns]
----------------------------------------------------------------------------------------------------------------------------------------------------------------
   Year quarter running dif.dogs average time avg win time best time           Set by       Set on
0      2020 2nd              217        23.40        22.79     22.25     Canya Cruise   3 JUN 2020
1      2020 1st              285        23.35        22.85     22.47     Dawn's Dream  22 JAN 2020
..          ...              ...          ...          ...       ...              ...          ...
65     2004 1st                3        23.54        23.25     23.25    Seismic Shock   9 JAN 2004
66     2003 4th               16        23.67        23.33     23.29  Far Away Places  17 OCT 2003

[67 rows x 7 columns]
----------------------------------------------------------------------------------------------------------------------------------------------------------------
   Year quarter running dif.dogs average time avg win time best time     Set by       Set on
0      2020 2nd              264        30.68        30.13     29.56  Oh Mickey  23 APR 2020
1      2020 1st              224        30.70        30.12     29.41  Sennachie  10 JAN 2020
..          ...              ...          ...          ...       ...        ...          ...
76     2001 2nd               13        30.50        30.37     30.16      Korda  27 APR 2001
77     2001 1st                3        30.72        30.72     30.55   Fly Fast   0 MAR 2001

[78 rows x 7 columns]
----------------------------------------------------------------------------------------------------------------------------------------------------------------
   Year quarter running dif.dogs average time avg win time best time            Set by       Set on
0      2020 2nd               76        35.71        35.14     34.65  Frieda Las Vegas  28 MAY 2020
1      2020 1st               76        35.77        35.21     34.72  Velocity Bettina  23 JAN 2020
..          ...              ...          ...          ...       ...               ...          ...
73     2001 2nd                1        35.49        35.49     35.49     Kissin Bobbie  24 MAY 2001
74     2001 1st                1        36.10        36.10     36.10    Brampton Blues  23 MAR 2001

[75 rows x 7 columns]
----------------------------------------------------------------------------------------------------------------------------------------------------------------
   Year quarter running dif.dogs average time avg win time best time             Set by       Set on
0      2020 2nd               33        42.73        42.08     41.62            Rasheda  28 MAY 2020
1      2020 1st               16        42.38        41.93     41.83      What About It  20 FEB 2020
..          ...              ...          ...          ...       ...                ...          ...
57     2001 3rd                2        42.57        42.53     42.53  Universal Tears *  16 AUG 2001
58     2001 2nd                4        42.24        42.27     42.15    Hotshow Vintage  14 JUN 2001

[59 rows x 7 columns]
----------------------------------------------------------------------------------------------------------------------------------------------------------------

编辑:也要获取距离列:

import requests
from bs4 import BeautifulSoup
import pandas as pd


url = "http://www.greyhound-data.com/d?page=stadia&st=1011&land=au&stadiummode=3"
req = requests.get(url).text
soup = BeautifulSoup(req, 'lxml')

table = soup.find_all("table", attrs={'id': "green"})[-1]

trs, dfs, all_data, th = table.select('tr'), [], [], ''
header = ['Distance'] + [th.get_text(strip=True) for th in trs[0].select('th')]

for tr in trs[1:]:
    if tr.td:
        all_data.append([th] + [td.get_text(strip=True) for td in tr.select('td')])
    else:
        th = tr.th.get_text(strip=True)
        if all_data:
            dfs.append(pd.DataFrame(all_data, columns=header))
            all_data = []

dfs.append(pd.DataFrame(all_data, columns=header))

# print all DataFrames in list:
for df in dfs:
    print(df)
    print('-' * 160)

印刷品:

                   Distance Year quarter running dif.dogs average time avg win time best time        Set by       Set on
0   Distance: 331 m / 362 y     2020 2nd              226        19.63        19.18     18.79     Data Base  15 JUN 2020
1   Distance: 331 m / 362 y     2020 1st              255        19.68        19.14     18.58     Wazza Who  23 JAN 2020
..                      ...          ...              ...          ...          ...       ...           ...          ...
39  Distance: 331 m / 362 y     2010 3rd              286        19.85        19.34     18.90  Royal Surfer  15 SEP 2010
40  Distance: 331 m / 362 y     2010 2nd               92        20.01        19.57     19.28      Paw Form  16 JUN 2010

[41 rows x 8 columns]
----------------------------------------------------------------------------------------------------------------------------------------------------------------
                   Distance Year quarter running dif.dogs average time avg win time best time           Set by       Set on
0   Distance: 395 m / 432 y     2020 2nd              217        23.40        22.79     22.25     Canya Cruise   3 JUN 2020
1   Distance: 395 m / 432 y     2020 1st              285        23.35        22.85     22.47     Dawn's Dream  22 JAN 2020
..                      ...          ...              ...          ...          ...       ...              ...          ...
65  Distance: 395 m / 432 y     2004 1st                3        23.54        23.25     23.25    Seismic Shock   9 JAN 2004
66  Distance: 395 m / 432 y     2003 4th               16        23.67        23.33     23.29  Far Away Places  17 OCT 2003

[67 rows x 8 columns]
----------------------------------------------------------------------------------------------------------------------------------------------------------------
                   Distance Year quarter running dif.dogs average time avg win time best time     Set by       Set on
0   Distance: 520 m / 569 y     2020 2nd              264        30.68        30.13     29.56  Oh Mickey  23 APR 2020
1   Distance: 520 m / 569 y     2020 1st              224        30.70        30.12     29.41  Sennachie  10 JAN 2020
..                      ...          ...              ...          ...          ...       ...        ...          ...
76  Distance: 520 m / 569 y     2001 2nd               13        30.50        30.37     30.16      Korda  27 APR 2001
77  Distance: 520 m / 569 y     2001 1st                3        30.72        30.72     30.55   Fly Fast   0 MAR 2001

[78 rows x 8 columns]
----------------------------------------------------------------------------------------------------------------------------------------------------------------
                   Distance Year quarter running dif.dogs average time avg win time best time            Set by       Set on
0   Distance: 600 m / 656 y     2020 2nd               76        35.71        35.14     34.65  Frieda Las Vegas  28 MAY 2020
1   Distance: 600 m / 656 y     2020 1st               76        35.77        35.21     34.72  Velocity Bettina  23 JAN 2020
..                      ...          ...              ...          ...          ...       ...               ...          ...
73  Distance: 600 m / 656 y     2001 2nd                1        35.49        35.49     35.49     Kissin Bobbie  24 MAY 2001
74  Distance: 600 m / 656 y     2001 1st                1        36.10        36.10     36.10    Brampton Blues  23 MAR 2001

[75 rows x 8 columns]
----------------------------------------------------------------------------------------------------------------------------------------------------------------
                   Distance Year quarter running dif.dogs average time avg win time best time             Set by       Set on
0   Distance: 710 m / 776 y     2020 2nd               33        42.73        42.08     41.62            Rasheda  28 MAY 2020
1   Distance: 710 m / 776 y     2020 1st               16        42.38        41.93     41.83      What About It  20 FEB 2020
..                      ...          ...              ...          ...          ...       ...                ...          ...
57  Distance: 710 m / 776 y     2001 3rd                2        42.57        42.53     42.53  Universal Tears *  16 AUG 2001
58  Distance: 710 m / 776 y     2001 2nd                4        42.24        42.27     42.15    Hotshow Vintage  14 JUN 2001

[59 rows x 8 columns]
----------------------------------------------------------------------------------------------------------------------------------------------------------------

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

熊猫-根据日期将数据框拆分为多个数据框?

来自分类Dev

将pandas数据框拆分为行数相等的多个数据框

来自分类Dev

将Python数据框拆分为多个数据框(所选行相同)

来自分类Dev

根据列名称将大型数据框拆分为多个数据框

来自分类Dev

如何通过列索引将数据框拆分为多个数据框

来自分类Dev

根据来自另一个数据框的值将数据框拆分为多个数据框

来自分类Dev

c#将一个数据表拆分为多个数据集

来自分类Dev

根据数据框中的索引值将Pandas数据框拆分为多个Excel工作表

来自分类Dev

如何将DataTable拆分为多个数据表c#

来自分类Dev

将数据帧拆分为多个数据帧

来自分类Dev

如何将两个数据拆分为表

来自分类Dev

如何将一个大型数据库表拆分为多个数据库表

来自分类Dev

将数据表拆分为多个固定大小的表

来自分类Dev

将pandas数据框列拆分为多个并遍历它

来自分类Dev

使用 Tidyverse 方法将数据集拆分为多个表

来自分类Dev

将一个数据行拆分为多个数据行

来自分类Dev

将文本框中的双精度值拆分为多个数组

来自分类Dev

将一个数据框列的列表拆分为两个数据框列

来自分类Dev

将数据集拆分为多个数据集后,如何执行计算?

来自分类Dev

根据条件将pyspark数据帧拆分为多个数据帧

来自分类Dev

将主数据帧拆分为循环中的多个数据帧-Pandas

来自分类Dev

将列拆分为数据框

来自分类Dev

如何将一个数据框列拆分为多列

来自分类Dev

根据值中的逗号将字典的值拆分为两个数据框列

来自分类Dev

将多行按列值组合为一行,并根据连接的行数将其拆分为多个数据框(对于多列)

来自分类Dev

将数据文件拆分为多个

来自分类Dev

如何使用php将视频拆分为多个数据包?

来自分类Dev

如何将pandas DataFrame拆分为多个数据帧?

来自分类Dev

将具有多个数据的单元格拆分为多于一列的多行

Related 相关文章

  1. 1

    熊猫-根据日期将数据框拆分为多个数据框?

  2. 2

    将pandas数据框拆分为行数相等的多个数据框

  3. 3

    将Python数据框拆分为多个数据框(所选行相同)

  4. 4

    根据列名称将大型数据框拆分为多个数据框

  5. 5

    如何通过列索引将数据框拆分为多个数据框

  6. 6

    根据来自另一个数据框的值将数据框拆分为多个数据框

  7. 7

    c#将一个数据表拆分为多个数据集

  8. 8

    根据数据框中的索引值将Pandas数据框拆分为多个Excel工作表

  9. 9

    如何将DataTable拆分为多个数据表c#

  10. 10

    将数据帧拆分为多个数据帧

  11. 11

    如何将两个数据拆分为表

  12. 12

    如何将一个大型数据库表拆分为多个数据库表

  13. 13

    将数据表拆分为多个固定大小的表

  14. 14

    将pandas数据框列拆分为多个并遍历它

  15. 15

    使用 Tidyverse 方法将数据集拆分为多个表

  16. 16

    将一个数据行拆分为多个数据行

  17. 17

    将文本框中的双精度值拆分为多个数组

  18. 18

    将一个数据框列的列表拆分为两个数据框列

  19. 19

    将数据集拆分为多个数据集后,如何执行计算?

  20. 20

    根据条件将pyspark数据帧拆分为多个数据帧

  21. 21

    将主数据帧拆分为循环中的多个数据帧-Pandas

  22. 22

    将列拆分为数据框

  23. 23

    如何将一个数据框列拆分为多列

  24. 24

    根据值中的逗号将字典的值拆分为两个数据框列

  25. 25

    将多行按列值组合为一行,并根据连接的行数将其拆分为多个数据框(对于多列)

  26. 26

    将数据文件拆分为多个

  27. 27

    如何使用php将视频拆分为多个数据包?

  28. 28

    如何将pandas DataFrame拆分为多个数据帧?

  29. 29

    将具有多个数据的单元格拆分为多于一列的多行

热门标签

归档