【问题标题】:Empty dataframe in pandas熊猫中的空数据框
【发布时间】:2018-05-08 04:00:24
【问题描述】:

嗨,我是网络抓取的新手,此代码运行良好,但它在最后一行打印到 csv 文件中。我不知道为什么我也在控制台上打印值并打印所有行

import bs4 as bs
import urllib
import pandas as pd
dfs = pd.read_html('http://www.espn.com/mlb/team/roster/_/name/nyy/new-york-yankees/' ,header= 0)

for df in dfs:
    df.to_csv('losangeles.csv', sep='\t',encoding='utf-8')

【问题讨论】:

    标签: python pandas web-scraping beautifulsoup


    【解决方案1】:

    您不应该迭代 DataFrame。您实际上获取每一行并将其保存到同一个文件中。

    要将所有 DataFrame 保存在一个文件中,请执行以下操作:

    dfs.to_csv('losangeles.csv', sep='\t',encoding='utf-8')
    

    【讨论】:

      【解决方案2】:

      你覆盖文件有问题,总是写df到同一个filename

      解决方案是创建唯一的文件名,例如通过enumerate添加计数:

      for i, df in enumerate(dfs):
          df.to_csv('losangeles_{}.csv'.format(i), sep='\t',encoding='utf-8')
      

      【讨论】:

      • 非常感谢。 read_html 中的多个 url 该怎么办?
      • 我认为你需要循环,for u in ['url1', 'url2']: dfs = pd.read_html(u)
      猜你喜欢
      • 2022-07-22
      • 1970-01-01
      • 2021-06-27
      • 2020-10-18
      • 1970-01-01
      • 2019-05-01
      • 2021-07-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多