【问题标题】:how to create dataframe for loops in python如何在python中为循环创建数据框
【发布时间】:2017-10-30 12:10:47
【问题描述】:

我正在从网站上抓取数据,所有数据都在表中。我想为所有表格信息创建一个数据框。

我正在使用下面的代码来获取表格信息。

all_table_info = html_soup.find('table', class_ = "views-table cols-4")---to get all the table info

for name in all_table_info.find_all('td',class_ = "views-field views-field-field-lastname active"):

    print (name.text)

for organization in all_table_info.find_all('td', class_ = "views-field views-field-field-employer") :

    print (organization.text)

我需要创建一个数据框,为名称和组织创建 2 个列。

name Organization

abcv fgvf

dfdf ghgjh

dfgdg hgjh

fgfg hkh

有没有办法做到这一点。

【问题讨论】:

  • 您是否有任何示例网站正在尝试使用这些类名进行抓取?

标签: python pandas web-scraping beautifulsoup


【解决方案1】:

你在正确的轨道上。您需要的只是一步之遥。首先,将所有数据放入列表中。

names = []
orgs = []

for name in all_table_info.find_all('td', 
           class_="views-field views-field-field-lastname active"):
    names.append(name.text.strip() if name.text else None)

for organization in all_table_info.find_all('td', 
           class_="views-field views-field-field-employer"):
    orgs.append(organization.text.strip() if organization.text else None) 

现在,创建您的数据框。

df = pd.DataFrame({'Name' : names, 'Org' : orgs})

【讨论】:

  • 有没有办法剥离数据,结果是这样的 0 \n\n\n\n \n\n\n Mr.\n Rex \n D. \n Adams \ n\... 1 \n\n\n\n \n\n\n 威廉先生\n S. \n 艾伦... 2 \n\n\n\n \n\n\n先生\n Lucien \n Alziari \n\n...
  • 感谢您的快速回复,无论如何要剥离\n\n\n\n
  • @K.Sanjay 数据是否在数据框中?如果是,请投票,并将我的答案标记为已接受并打开一个新问题,因为这需要另一个答案。将您当前的数据框输出粘贴到 new 问题中。
  • 我试过这个:对于 all_table_info.find_all('td', class_="views-field views-field-field-lastname active") 中的名称:names.append(name.text) 名称= names.strip('\n') 但我收到错误'列表对象没有属性条'
  • @K.Sanjay 你做错了。如果您阅读了我之前的评论,我已经解释了您应该做什么。请听我说。谢谢。
猜你喜欢
  • 1970-01-01
  • 2022-11-30
  • 1970-01-01
  • 2021-02-12
  • 1970-01-01
  • 2020-09-16
  • 2019-03-16
  • 1970-01-01
  • 2021-08-15
相关资源
最近更新 更多