Tôi đang truy xuất một số nội dung từ trang web có nhiều bảng có cùng số cột, với gấu trúc read_html
. Khi tôi đọc một liên kết duy nhất thực sự có nhiều bảng có cùng số cột, gấu trúc đọc tất cả các bảng một cách hiệu quả như một (một cái gì đó giống như một bảng phẳng/chuẩn hóa). Tuy nhiên, tôi quan tâm đến việc làm tương tự cho một danh sách các liên kết từ một trang web (ví dụ một bảng phẳng duy nhất cho một số liên kết), vì vậy tôi thử như sau:Làm cách nào để xác định lại các cột không đúng định dạng được lấy từ gấu trúc read_html?
Trong:
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
Tuy nhiên, tôi đoán tôi không specifiying corecctly để read_html()
đó là những cột, vì vậy tôi đang nhận được danh sách này bị thay đổi danh sách:
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 ]]
vì vậy, câu hỏi của tôi Tôi nên di chuyển thông số nào để lấy khung dữ liệu pandas phẳng từ danh sách lồng nhau ở trên?. Tôi đã cố gắng để header=0
, index_col=0
, match='"columns"'
, không ai trong số họ làm việc hoặc tôi cần phải làm việc flatting khi tôi tạo khung dữ liệu gấu trúc với pd.Dataframe()
?. Mục tiêu chính của tôi là phải có một dataframe gấu trúc như với các cột này:
form, Disponibility, Relation, drawbacks
1
2
...
n
Cảm ơn sự giúp đỡ. Trong '----> 4 df = pd.concat (pool.map (process, links), ignore_index = True)'. Tôi nhận được: 'TypeError: không thể nối một đối tượng không phải NDFrame'. Bất kỳ ý tưởng về lý do tại sao điều này đang xảy ra và phải làm gì ?. – tumbleweed
@tumbleweed, 'pool.map (quá trình, liên kết)' trả về là gì? Đây có phải là danh sách các DF hay một cái gì đó khác? – MaxU
Cảm ơn một lần nữa Max, giữ tôi chạy lại nó và mất một thời gian. – tumbleweed