gpt4 book ai didi

python - 如何使用 Pandas 列解析网络中的文本?

转载 作者:太空宇宙 更新时间:2023-11-03 18:57:33 24 4
gpt4 key购买 nike

我在邮政编码的数据帧列上使用了 map 函数来创建一个新的元组系列,然后我可以将其操作到一个新的数据帧中。

def scrape_data(series_data):
#A bit of code to create the URL goes here

r = requests.get(url)
root_content = r.content
root = lxml.html.fromstring(root_content)

address = root.cssselect(".lr_results ul")
for place in address:
address_property = place.cssselect("li a")[0].text
house_type = place.cssselect("li")[1].text
house_sell_price = place.cssselect("li")[2].text
house_sell_date = place.cssselect("li")[3].text
return address_property, house_type, house_sell_price, house_sell_date

df = postcode_subset['Postcode'].map(scrape_data)

虽然它可以在结果页面上只有一个属性的情况下工作,但无法为多个属性创建元组。

我想要做的是迭代一系列页面,然后将该内容添加到数据框中。我知道 Pandas 可以将嵌套字典转换为数据帧,但很难让它发挥作用。我尝试使用 How to make a nested dictionary and dynamically append data 中的答案但我迷路了。

最佳答案

目前,您的函数仅返回 address 中的第一个 place (通常在 python 中,您会 yield (而不是 return) 来检索所有结果作为生成器。

随后执行应用/映射时,您通常希望该函数返回一个系列...

但是,我认为您只想返回以下 DataFrame:

return pd.DataFrame([{'address_ property': place.cssselect("li a")[0].text,
'house_type': place.cssselect("li")[1].text,
'house_sell_price': place.cssselect("li")[2].text,
'house_sell_date': place.cssselect("li")[3].text}
for place in address],
index=address)

关于python - 如何使用 Pandas 列解析网络中的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16932625/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com