Как извлечь столбцы из сложной html-таблицы?

Подскажите, пожалуйста, как получить доступ к столбцам Date.1 и New в таблице.

import pandas as pd   
dfs = pd.read_html('https://en.wikipedia.org/wiki/Template:COVID-19_pandemic_data/Russia_medical_cases')  
dfs[0][['Confirmed','Date']][:-2]   # возвращает необходимые строки и четыре столбца, а надо только два

введите сюда описание изображения


Ответы (1 шт):

Автор решения: MaxU

Воспользуйтесь pd.IndexSlice:

In [37]: idx = pd.IndexSlice

In [38]: dfs[0].loc[:, idx[["Confirmed", "Date"], ["Date", "New"]]]
Out[38]:
        Date   Confirmed
        Date         New
0     31 Jan           1
1     11 Feb           –
2     12 Feb           –
3      2 Mar           1
4      5 Mar           1
..       ...         ...
99    9 June        8595
100  10 June        8404
101    Total  493,657[a]
102     Date         New
103     Date   Confirmed

[104 rows x 2 columns]

Из комментария:

А как прочесть значения полей, например, в 99-ой строке? Чтобы получить "9 June" и 8595?

In [51]: dfs[0].loc[99, idx[["Confirmed", "Date"], ["Date", "New"]]]
Out[51]:
Date       Date    9 June
Confirmed  New       8595
Name: 99, dtype: object
→ Ссылка