Pobieram niektóre treści ze strony internetowej zawierającej kilka tabel z taką samą liczbą kolumn, z pandem read_html
. Kiedy czytam pojedyncze łącze, które ma kilka tabel z taką samą liczbą kolumn, pandy skutecznie odczytują wszystkie tabele jako jedną (coś w rodzaju płaskiej/znormalizowanej tabeli). Jednak jestem zainteresowany zrobić to samo dla listy linków ze strony internetowej (tj jednym płaskim stole przez kilka linków), więc próbowałem następujące:Jak ponownie wyświetlić zniekształcone zniekształcone kolumny pochodzące z pandy read_html?
w:
import multiprocessing
def process(url):
df_url = pd.read_html(url)
df = pd.concat(df_url, ignore_index=False)
return df_url
links = ['link1.com','link2.com','link3.com',...,'linkN.com']
pool = multiprocessing.Pool(processes=6)
df = pool.map(process, links)
df
Niemniej jednak Chyba nie jestem specifiying corecctly do read_html()
które są kolumny, więc jestem coraz to nieprawidłowy wykaz list:
OUT:
[[ Form Disponibility \
0 290090 01780-500-01) Unavailable - no product available for release.
Relation \
Relation drawbacks
0 NaN Removed
1 NaN Removed ],
[ Form \
Relation \
0 American Regent is currently releasing the 0.4...
1 American Regent is currently releasing the 1mg...
drawbacks
0 Demand increase for the drug
1 Removed ,
Form \
0 0.1 mg/mL; 10 mL Luer-Jet Prefilled Syringe (N...
Disponibility Relation \
0 Product available NaN
2 Removed
3 Removed ]]
więc moje pytanie który parametr należy przenieść, aby uzyskać płaską ramkę danych pandy z powyższej zagnieżdżonej listy ?. Próbowałem wykonać: header=0
, index_col=0
, match='"columns"'
, żaden z nich nie działał lub nie muszę wykonywać flattingu, gdy tworzę ramkę danych pandy z pd.Dataframe()
? Moim głównym celem jest, aby mieć dataframe pandy jak z tej kolumny:
form, Disponibility, Relation, drawbacks
1
2
...
n
Dzięki za pomoc. W '----> 4 df = pd.concat (pool.map (process, links), ignore_index = True)'. Mam: 'TypeError: nie można połączyć obiektu innego niż NDFrame'. Każdy pomysł, dlaczego tak się dzieje i co robić ?. – tumbleweed
@tumbleweed, co zwróci 'pool.map (process, links)'? Czy to lista DF czy coś innego? – MaxU
Jeszcze raz dziękuję Max, trzymaj się, ponownie go uruchomię i trwa to trochę dłużej. – tumbleweed