为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用“熊猫”列从网络解析文本?

如何使用“熊猫”列从网络解析文本?

阿波罗的战车 2021-03-12 14:11:33
我在邮政编码的数据框列上使用了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_datedf = postcode_subset['Postcode'].map(scrape_data)虽然在结果页面上只有一个属性的地方可以使用,但是无法为多个属性创建一个元组。我想做的是遍历一系列页面,然后将该内容添加到数据框中。我知道Pandas可以将嵌套的dict转换为数据帧,但确实很难使其工作。我试图使用“如何制作嵌套字典并动态附加数据”中的答案,但是我迷路了。谁能帮助我指出正确的方向?
查看完整描述

2 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

为了使代码正常工作,我最终将Andy Hayden的解决方案重新设计为:


listed = []

    for place in address:

        results = [{'postcode':postcode_bit,'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}]


        listed.extend(results)

    return listed

至少我对Python数据结构现在的工作方式了解得更多。


查看完整回答
反对 回复 2021-03-30
  • 2 回答
  • 0 关注
  • 146 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信