【问题标题】:Python AttributeError: 'list' object has no attribute 'to_csv'Python AttributeError:“列表”对象没有属性“to_csv”
【发布时间】:2021-02-15 04:35:44
【问题描述】:

我的代码目前遇到错误,我不知道为什么。我最初认为这是因为我无法保存带有连字符的 csv 文件,但事实并非如此。有没有人对可能导致问题的原因有任何建议。我的代码如下:

import pandas as pd
import requests

query_set = ["points-per-game"]

for query in query_set:
    url = 'https://www.teamrankings.com/ncaa-basketball/stat/' + str(query)
    html = requests.get(url).content
    df_list = pd.read_html(html)
    print(df_list)

    df_list.to_csv(str(query) + "stat.csv", encoding="utf-8")

【问题讨论】:

  • 错误很明显 - 您正试图将 .to_csv 调用到 python 列表(这显然会失败)
  • 如下所述,您需要从列表中调用数据框元素。此外,不需要html = requests.get(url).content,因为熊猫.read_html() 具有请求html 的能力。简直可以df_list = pd.read_html(url)

标签: python pandas dataframe export-to-csv


【解决方案1】:

read_html() 方法返回数据帧列表,而不是单个数据帧:

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_html.html

您需要遍历 df_list 并在每个条目上运行 to_csv,如下所示:

import pandas as pd import requests

query_set = ["points-per-game"]

for query in query_set:
    url = 'https://www.teamrankings.com/ncaa-basketball/stat/' + str(query)
    html = requests.get(url).content
    df_list = pd.read_html(html)
    print(df_list)

    for current_df in df_list:
      current_df.to_csv(str(query) + "stat.csv", encoding="utf-8")
      print(current_df)

【讨论】:

    【解决方案2】:

    函数pd.read_html 返回在 HTML 源代码中找到的 DataFrame 列表。使用df_list[0] 获取作为该列表的第一个元素的DataFrame。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-18
      • 2021-07-05
      • 1970-01-01
      • 2021-08-20
      • 2018-01-16
      • 2016-05-14
      • 2016-12-21
      相关资源
      最近更新 更多