Почему мой код дает мне данные в 1 столбце, он должен давать мне в двух разных столбцах - PullRequest
0 голосов
/ 17 октября 2019

мне нужно знать, что происходит в моем коде? он должен давать данные в отдельных столбцах, он дает мне те же данные в столбцах присяги.

Я пытался изменить значение переменной строки, но не нашел причину

import requests
import csv
from bs4 import BeautifulSoup
import pandas as pd

import time
arrayofRequest= []
prices=[]
location=[]
columns=['Price', 'Location']
df = pd.DataFrame(columns=columns)


for i in range(0,50):
    arrayofRequest.append("https://www.zameen.com/Homes/Karachi-2-"+str(i+1)+".html?gclid=Cj0KCQjw3JXtBRC8ARIsAEBHg4mj4jX1zZUt3WzGScjH6nfwzrEqkuILarcmg372imSneelSXPj0fGIaArNeEALw_wcB")
    request = requests.get(arrayofRequest[i])

    soupobj= BeautifulSoup(request.content,"lxml")
#     print(soupobj.prettify())

    links =soupobj.find_all('span',{'class':'f343d9ce'})
    addresses =soupobj.find_all('div',{'class':'_162e6469'})
    price = ""
    for i in range(0,len(links)):
        price = str(links[i]).split(">")
        price = price[len(price)-2].split("<")[0]
        prices.append(price)

        address = str(addresses[i]).split(">")
        address = address[len(address)-2].split("<")[0]
        location.append(address)

        row=location[i]+","+prices[i]
        df = df.append(pd.Series(row, index=columns), ignore_index=False)
#         filewriter = csv.writer(csvfile, delimiter=',',filewriter.writerow(['Price', 'Location']),filewriter.writerow([prices[0],location[0]])
df.to_csv('DATA.csv', index=False)

1 Ответ

0 голосов
/ 17 октября 2019

из-за этого:

pd.Series(row, index=columns)

попробуйте что-то вроде

pd.DataFrame([[locations[i], prices[i]]], index=columns))

Однако это можно сделать только один раз за пределами вашегодля петли

pd.DataFrame(list(zip(locations, prices)), index=columns))

...