Гнущиеся Scraping Code hard

url, который я использую, состоит файла html в том, чтобы он загрузился этого соединения: https://drive.google.com/drive/folders/1NzgjsD-fIPkVLjFMfu0bBpruwFoZd-LM

from pandas import pd

def Leer_html():
    try:
        url = "file:///C:/Users/ronye/Downloads/fuenteDeDatos.html"
        dfs = pd.read_html(url)
        print(dfs)
    except:
        print("Error: sin internet; perdida de conexión")

очень хорошо, но то, что я хочу, состоит в том, чтобы мочь показывать некую информацию о любой колонне или линии. Но я не нашел информации, необходимой, чтобы мочь добиваться этого, это моя проблема.

0
задан 20.03.2019, 10:02
1 ответ

Пара вещей на pandas.read_html(). Эта funciГіn пробует искать в документе HTML, что ты переместил его все подмостки (элементы <table>), который он содержал, и для каждого из них тебе производит dataframe панды. То, что он возвращает в конце концов, так это список dataframes .

AГєn в случае, в котором у HTML sГіlo есть таблица, ты retornarГЎ также список (хотя с единственным элементом). DeberГ-схвати, ты оставь себе элемент [0] того, что он возвращает, funciГіn, что contendrГ - в dataframe, соответствующий первой таблице документа (и Гєnica в твоем случае).

С другой стороны, HTML документа в cuestiГіn не продолжает соглашение использования элементов типа "table header" (<th>), чтобы помечать то, что serГ-an они tГ-tulos колонн, но он помещает этих tГ-tulos в первую линию тела таблицы (<tbody>). AsГ - что назначенные по умолчанию панды tratarГ - в эту первую линию как данные, вместо того, чтобы относиться к ней как к которое это, заголовкам данных.

ты Можешь исправлять это, загрузив документ, asГ-:

    dfs = pd.read_html(url, header=0)

, который он говорит пандам, чтобы он использовал линию 0 данных как заголовок.

Делая это, dataframe, что налоги он кажется правильным:

>>> dfs = pd.read_html(url, header=0)
>>> df = dfs[0]
>>> df

tabla

Однажды ты считаешь dataframe правильно нагруженным это соглашения на линию или колонна состоит в том, чтобы продолжать механизм clГЎsico использованный пандами. Ты говоришь, что ты не нашел informaciГіn, но однако это то bГЎsico панд. Не sГ© quГ© шрифты habrГЎs консультировавший. Есть много книг, руководители, и ноутбуки примера, который ты можешь находить в Интернете, который они обычно начинают точно из-за cГіmo выбирать линии и колонны. TambiГ©n у тебя есть сам учебник панд

, Чтобы начинать с чего-то:

  • Выбирать колонну, если у колонны нет места или sГ-mbolos редкие в имени, может делаться используя простой синтаксис:
>>> df.Detalle
0               Propiedad en Cartago 1200 mtrs
1                         Servidor HP Proliant
2               Central Telefónica Avaya 2700u
3                  Televisor Sony 55" KDV55021
4                   iPhone X -125 G - Gerencia
5          Vehiculo Toyota 2014 - Modelo Yaris
6    25 Licencias de Windows 10 ES PRO 64 bits
7                            Camión Isuzu 2008
8                         Mobiliario 25 sillas
9                           SAP One on Premise
Name: Detalle, dtype: object
  • , Если у него есть место в имени, помести имя между кавычками и используй это как будто это был ключ словаря python, а именно:
>>> df["Fecha de compra"]
0    15/02/2010
1    01/01/2019
2    31/11/2015
3    21/10/2017
4    10/05/2018
5    23/08/2014
6    26/03/2015
7    05/06/2008
8    10/10/2015
9    22/01/2018
Name: Fecha de compra, dtype: object
  • , Чтобы выбирать линии, использует признак .loc и помести между квадратными скобками Г-ndice линии (в этом случае он возвращает тебе серию которые Г-ndices это колонны этой линии):
>>> df.loc[1]
Identificador                              2342
Categoria                                   AFT
Detalle                    Servidor HP Proliant
Valor inicial                           7689300
Fecha de compra                      01/01/2019
Moneda                                  Colones
Valor de salvamento                      450000
Periodo de recuperacion                       6
Name: 1, dtype: object
  • ты Можешь выбирать "суб-таблицу" определяя внутри .loc, отделенных запятыми, ранг линий и ранг колонн, или список с нею selecciГіn колонн, которые он интересовал бы тебя. Например:
>>> df.loc[0:3, ["Categoria", "Fecha de compra", "Moneda"]]

Resultado

0
ответ дан 02.12.2019, 05:22

Теги

Похожие вопросы