İşte ayıklamak için py-wikimarkup ve PyQuery kullanarak bir çözüm tüm tablolar, bir wikimarkup dizesinden pandas DataFrames olarak, tablo dışı içeriği göz ardı ederek. Aşağıdaki giriş Verilen
import wikimarkup
import pandas as pd
from pyquery import PyQuery
def get_tables(wiki):
html = PyQuery(wikimarkup.parse(wiki))
frames = []
for table in html('table'):
data = [[x.text.strip() for x in row]
for row in table.getchildren()]
df = pd.DataFrame(data[1:], columns=data[0])
frames.append(df)
return frames
,
wiki = """
=Title=
Description.
{| class="wikitable sortable"
|-
! Model !! Mhash/s !! Mhash/J !! Watts !! Clock !! SP !! Comment
|-
| ION || 1.8 || 0.067 || 27 || || 16 || poclbm; power consumption incl. CPU
|-
| 8200 mGPU || 1.2 || || || 1200 || 16 || 128 MB shared memory, "poclbm -w 128 -f 0"
|-
| 8400 GS || 2.3 || || || || || "poclbm -w 128"
|-
|}
{| class="wikitable sortable"
|-
! A !! B !! C
|-
| 0
| 1
| 2
|-
| 3
| 4
| 5
|}
"""
get_tables
aşağıdaki DataFrames döndürür. Buna göre
Model Mhash/s Mhash/J Watts Clock SP Comment
0 ION 1.8 0.067 27 16 poclbm; power consumption incl. CPU
1 8200 mGPU 1.2 1200 16 128 MB shared memory, "poclbm -w 128 -f 0"
2 8400 GS 2.3 "poclbm -w 128"
A B C
0 0 1 2
1 3 4 5
: http://pandas.pydata.org/pandas-docs/dev/dsintro.html#dataframe bir DataFrame bu birinden yapılabilir: Dict 1D ndarrays, liste, dicts veya Seriler; 2-D numpy.ndarray; Yapılandırılmış veya kayıt ndarray; A Serisi; Başka bir DataFrame. En basit olanı bir liste/dict ifadesidir, ancak verilerinizin bu şekilde nasıl zorlanacağı belli değildir. Aklında ne var? – hughdbrown