Вы слишком много просите! Pandas хорош при разборе таблиц angular HTML, и здесь он делает это отлично:
- он дает 9 столбцов от M1x до M9x
- он дает 20 строк от MyA до MyZ (не используя все буквы)
Здесь вы хотели бы, чтобы он анализировал внутри ячеек. Извините, но вам придется кодировать его самостоятельно. Например, вы можете легко проанализировать первый ряд с помощью:
df = pd.read_html('https://en.wikipedia.org/wiki/List_of_postal_codes_of_Canada:_M')[0]
dfA = df.iloc[0].str.extractall(r'(M\d\w)([^\(\(]*)(?:\((.*)\))?')
, который он дает для dfA
:
0 1 2
match
0 0 M1A Not assigned NaN
1 0 M2A Not assigned NaN
2 0 M3A North York Parkwoods
3 0 M4A North York Victoria Village
4 0 M5A Downtown Toronto Regent Park / Harbourfront
5 0 M6A North York Lawrence Manor / Lawrence Heights
6 0 M7A Queen's Park / Ontario Provincial Government NaN
7 0 M8A Not assigned NaN
8 0 M9A Etobicoke Islington Avenue