首页 > 解决方案 > 数据框中的Python for循环

问题描述

美好的一天,伙计们!小心 COVID19 并解决 1 个问题。

我真的很想通过下面用B列的值爬取地址并将其放在F列中。 →这就是我得到的问题

这是我的来源。(这是制作简单数据框的来源。)

Start_Page = 0
End_Page = 500

for i in range(Start_Page, End_Page):
    page = i + 1
    url = "http://www.example.com &start=" + str(page)
    res = urllib.request.urlopen(url)
    json_str = response.read().decode("utf-8")
    json_object = json.loads(json_str)
    Mark = pd.json_normalize(json_object['jobs']['job'])
    df = pd.DataFrame(Mark)
    df = df[['A', 'B', 'C', 'D', 'E']]

列的名称是 A 到 E。

我真的很想用B列的值通过下面的爬取来获取地址,并将其放在F列中。

(这是爬行的来源。)

B = B     # B in dataframe 'df'
result = urlopen("http://www.example2.com" + B)
html = result.read()
soup = BeautifulSoup(html, 'html.parser')

address = str(soup.select_one("address.txt_address > span"))
address = re.sub('<.+?>', '', address, 0).strip()
B = B2 → append address to F2
...
...
...
B = B110000 → append address to F110000

如何使用 B 的值作为变量来创建将地址添加到 F 列的“for 循环”?(我找了一个星期的方法,但是太难找了。)

标签: pythondataframefor-loop

解决方案


我不确定我是否正确理解了这个问题,

但是如果您尝试使用以下值获取一些地址

'B' 列并将其保存到新的 'F' 列,

您可以只选择“B”列并将其放入for循环中。

values_for_f = []
for i in df['b'].values:
    result = urlopen("http://www.example2.com" + i)
    ....
    address = re.sub('<.+?>', '', address, 0).strip()
    values_for_f.append(address)
df['f'] = values_for_f

推荐阅读