영국의 공동 데이터를 폐기하고 한 번에 하나의 병원에서 원하는 형식으로 결과를 얻습니다. 결국 모든 병원을 반복하고 싶지만 처음에는 세 가지 병원을 배열하여 반복을 결정했습니다.여러 개의 재구성 목록을 팬더에 추가하십시오. DataFrame
나는 한 병원에있을 때 아래의 코드는 팬더 DataFrame 나에게 최종 결과의 올바른 형식을 제공합니다
import requests
from bs4 import BeautifulSoup
import pandas
import numpy as np
r=requests.get("http://www.njrsurgeonhospitalprofile.org.uk/HospitalProfile?
hospitalName=Norfolk%20and%20Norwich%20Hospital")
c=r.content
soup=BeautifulSoup(c,"html.parser")
all=soup.find_all(["div"],{"class":"toggle_container"})[1]
i=0
temp = []
for item in all.find_all("td"):
if i%4 ==0:
temp.append(soup.find_all("span")[4].text)
temp.append(soup.find_all("h5")[0].text)
temp.append(all.find_all("td")[i].text.replace(" ",""))
i=i+1
table = np.array(temp).reshape(12,6)
final = pandas.DataFrame(table)
final
내 반복 된 버전의를, 나는 각 결과 집합을 추가하는 방법을 알아낼 수 없습니다 최종 DataFrame로 :
hosplist = ["http://www.njrsurgeonhospitalprofile.org.uk/HospitalProfile?hospitalName=Norfolk%20and%20Norwich%20Hospital",
"http://www.njrsurgeonhospitalprofile.org.uk/HospitalProfile?hospitalName=Barnet%20Hospital",
"http://www.njrsurgeonhospitalprofile.org.uk/HospitalProfile?hospitalName=Altnagelvin%20Area%20Hospital"]
temp2 = []
df_final = pandas.DataFrame()
for item in hosplist:
r=requests.get(item)
c=r.content
soup=BeautifulSoup(c,"html.parser")
all=soup.find_all(["div"],{"class":"toggle_container"})[1]
i=0
temp = []
for item in all.find_all("td"):
if i%4 ==0:
temp.append(soup.find_all("span")[4].text)
temp.append(soup.find_all("h5")[0].text)
temp.append(all.find_all("td")[i].text)
i=i+1
table = np.array(temp).reshape((int(len(temp)/6)),6)
temp2.append(table)
#df_final = pandas.DataFrame(df)
말에서, '테이블'은 내가 원하는 모든 데이터를 가지고 있지만이 조작하기 쉽지 않다 그래서 나는 DataFrame에 넣어합니다. 그러나 "ValueError : 2-d 입력을 통과해야 함"오류가 발생합니다.
나는이 오류가 내가 3 차원으로 만드는 3 개의 배열을 가지고 있다고 말하고 있다고 생각한다. 이것은 연습 반복 일뿐 400 개가 넘는 병원에서 데이터를 데이터 프레임에 넣으 려하지만 여기에 붙어 있습니다.
스택 추적 PLS. 추가 대신 확장을 사용 해보셨습니까? – skrubber