![](/img/trans.png)
[英]Creating pandas dataframe from list of dictionaries containing lists of data
[英]Creating a pandas DataFrame from list of lists containing data from bs4 object
我希望创建一个包含从网站上抓取的数据的 DataFrame。 数据被放入两个列表 - 职位名称和链接到职位申请页面的 URL。 我的目标是将它们传递到一个列表中以创建一个 DataFrame,如https://www.geeksforgeeks.org/different-ways-to-create-pandas-dataframe/ 所示
list_job_titles = []
list_job_URLs = []
for a in soup.find_all('a', href = re.compile("work-placement-internship")):
URL_from_soup = (a['href'] + " ")
title_from_soup =(a.text.strip())
list_job_titles.append(title_from_soup)
list_job_URLs.append(URL_from_soup)
time.sleep(0.1)
data = [[list_job_titles],[list_job_URLs]]
df = pd.DataFrame(data, columns=['Job title', 'URL'])
我已经测试了脚本的网络抓取方面,它从站点获取所有所需的信息。 但是,在创建 DataFrame 时,我收到错误消息:
ValueError: 2 列传递,传递的数据有 1 列
然后我尝试传入一列标题:
df = pd.DataFrame(data, columns=['Job title'])
我得到的输出:
职称
0 [一些职位...
1 [ https://someURL ...
知道如何将其分成两列,一列用于标题,另一列用于 URL
干杯
尝试这个:
代替:
df = pd.DataFrame(data, columns=['Job title', 'URL'])
和:
df = pd.DataFrame({"Job title": list_job_titles, "URL": list_job_URLs})
尝试这样的事情:
df = pd.DataFrame({"Job Title": list_job_titles, "Job URLs": list_job_urls})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.