【发布时间】:2020-12-09 05:43:20
【问题描述】:
我正在尝试使用漂亮的汤从 espn 中提取数据。
但是,我无法将值分配给正确的列。我提取的某些值正在将我的数据转移到不同的列中。
当我将数据打印到 Excel 时,值没有正确对齐。他们的方法是给正确的列赋值吗?
任何帮助将不胜感激。
代码:
from bs4 import BeautifulSoup
import pandas as pd
import requests
url = 'https://www.espn.com/nba/player/gamelog/_/id/3012/kyle-lowry'
page = requests.get(url)
soup = BeautifulSoup(page.text, 'html.parser')
columns=[
'Date',
'OPP',
'Result',
'MIN',
'FG',
'FG%',
'3PT',
'3P%',
'FT',
'FT%',
'REB',
'AST',
'BLK',
'STL',
'PF',
'TO',
'PTS',
]
# create dataframe
d1 = pd.DataFrame(columns=columns)
full = []
for data in soup.find_all('td', attrs = {'class': 'Table__TD'}):
val = data.get_text()
full.append(val)
# seperate full list into sub-lists with 17 elements
rows = [full[i: i+17] for i in range(0, len(full), 17)]
# append list of lists structure to dataframe
d1 = d1.append(pd.DataFrame(rows, columns=d1.columns))
print(d1)
d1.to_csv('C:\\Users\\Jonathan\\test7.csv')
【问题讨论】:
标签: python pandas beautifulsoup