1

郵便番号のデータフレーム列で 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)

結果ページにプロパティが 1 つしかない場合は機能しますが、複数のプロパティのタプルを作成することはできません。

私ができるようにしたいのは、一連のページを反復処理してから、そのコンテンツをデータフレームに追加することです。Pandas がネストされた dict をデータフレームに変換できることは知っていますが、それを機能させるのに本当に苦労しています。ネストされた辞書を作成してデータを動的に追加する方法の回答を使用しようとしましたが、迷子になっています。

誰かが私を正しい方向に向けるのを手伝ってくれますか?

4

2 に答える 2

0

コードを機能させるために、私は最終的に 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 のデータ構造がどのように機能するかについて、もう少し理解できました。

于 2013-06-06T06:16:00.260 に答える