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

我在邮政编码的数据框列上使用了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可以将嵌套的dict转换为数据帧,但确实很难使其工作。我试图使用“如何制作嵌套字典并动态附加数据”中的答案,但是我迷路了。


谁能帮助我指出正确的方向?


阿波罗的战车
浏览 147回答 2
2回答

不负相思意

为了使代码正常工作,我最终将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数据结构现在的工作方式了解得更多。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python