pandas
предоставляет полезный to_html()
для преобразования DataFrame
в html table
. Есть ли полезная функция, чтобы прочитать ее обратно в DataFrame
?
Как преобразовать таблицу html в pandas dataframe
Ответ 1
read_html утилита, выпущенная в pandas 0.12
Ответ 2
В общем случае это невозможно, но если вы примерно знаете структуру своей таблицы, вы можете что-то вроде этого:
# Create a test df:
>>> df = DataFrame(np.random.rand(4,5), columns = list('abcde'))
>>> df
a b c d e
0 0.675006 0.230464 0.386991 0.422778 0.657711
1 0.250519 0.184570 0.470301 0.811388 0.762004
2 0.363777 0.715686 0.272506 0.124069 0.045023
3 0.657702 0.783069 0.473232 0.592722 0.855030
Теперь проанализируйте html и восстановите:
from pyquery import PyQuery as pq
d = pq(df.to_html())
columns = d('thead tr').eq(0).text().split()
n_rows = len(d('tbody tr'))
values = np.array(d('tbody tr td').text().split(), dtype=float).reshape(n_rows, len(columns))
>>> DataFrame(values, columns=columns)
a b c d e
0 0.675006 0.230464 0.386991 0.422778 0.657711
1 0.250519 0.184570 0.470301 0.811388 0.762004
2 0.363777 0.715686 0.272506 0.124069 0.045023
3 0.657702 0.783069 0.473232 0.592722 0.855030
Вы можете расширить его для обнаружения файлов MultiDex или автоматического типа с помощью eval()
, если это необходимо.