python - 写入csv时发生Python错误。我究竟做错了什么?

标签 python pandas dataframe compiler-errors

我收到此错误。我正在尝试将此df写到csv或excel(在这种情况下为excel。我也尝试使用CSV)。
有人可以帮忙完成代码吗?
如果符合良好代码的要求?

import pandas as pd
import requests
from bs4 import BeautifulSoup as bs

url = 'https://www.soccerbase.com/teams/home.sd'
r = requests.get(url)
soup = bs(r.content, 'html.parser')
teams = soup.find('div', {'class': 'headlineBlock'}, text='Team').next_sibling.find_all('li')

teams_dict = {}
for team in teams:
    link = 'https://www.soccerbase.com' + team.find('a')['href']
    team = team.text

    teams_dict[team] = link

team = []
comps = []
dates = []
h_teams = []
a_teams = []
h_scores = []
a_scores = []

consolidated = []
for k, v in teams_dict.items():
    print('Acquiring %s data...' % k)

    headers = ['Team', 'Competition', 'Home Team', 'Home Score', 'Away Team', 'Away Score', 'Date Keep']
    r = requests.get('%s&teamTabs=results' % v)
    soup = bs(r.content, 'html.parser')

    h_scores.extend([int(i.text) for i in soup.select('.score a em:first-child')])
    limit_scores = [int(i.text) for i in soup.select('.score a em + em')]
    a_scores.extend([int(i.text) for i in soup.select('.score a em + em')])

    limit = len(limit_scores)
    team.extend([k for i in soup.select('.tournament', limit=limit)])
    comps.extend([i.text for i in soup.select('.tournament a', limit=limit)])
    dates.extend([i.text for i in soup.select('.dateTime .hide', limit=limit)])
    h_teams.extend([i.text for i in soup.select('.homeTeam a', limit=limit)])
    a_teams.extend([i.text for i in soup.select('.awayTeam a', limit=limit)])

df = pd.DataFrame(list(zip(team, comps, h_teams, h_scores, a_teams, a_scores, dates)))

pd.set_option('display.width', 400)
pd.set_option('display.max_columns', 10)
d = pd.DataFrame(df)
# var = df[df['Team'] == 'Wolves']
pd.concat(df).to_csv(r'C:\Users\harsh\Desktop\Temp1\consolidated.csv', sep=',', encoding='utf-8-sig', index=False)

# print(df.to_string())
# print(df)

PY Noob Am i going wrong at the writing code?

最佳答案

似乎df已经是一个数据帧。因此,我认为您不需要第48行。
之后,您可以做:

df.to_csv(r'C:\Users\harsh\Desktop\Temp1\consolidated.csv', sep=',', encoding='utf-8-sig', index=False)

关于python - 写入csv时发生Python错误。我究竟做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59051355/

相关文章:

python - 从 Pandas DataFrame 获取包含元素列的列表

python - 如何在 Pandas 中一起使用 distinct 和 where 子句?

python - 如何使用 Python 的 pip 下载和保存压缩包的文件?

c++ - 如何在使用 TCP 的序列化/反序列化中避免跨语言依赖?

python - 如何从 numpy ndarray 中删除特定值

python - 按最小值分组并用另一列中的值填充 NA

Python Pandas - 'loc' 和 'where' 之间的区别?

python - 使用 python 的数据透视表

python - 从 Python 导入的 Excel 文件中选择特定工作表

python - 使用 PyCrypto 使用 RSA 公钥解密消息