PRO_PYTHON_CODE Telegram 1011
🖥 Быстрый веб-скрейпинг с библиотекой Polars

Polars — это библиотека Python для работы с датафреймами, по скорости превосходящая Pandas.

Как и Pandas, Polars можно использовать для парсинга сайтов. С ее помощью можно читать любые CSV-файлы, опубликованные на сайте, и даже извлекать таблицы из HTML-страниц.

Однако в настоящее время в Polars нет функции .read_html, как в Pandas. Поэтому я покажу обходной путь, позволяющий превратить таблицы с HTML-страниц в Polars-датафреймы.

Скрейпинг нескольких CSV-файлов с использованием Polars
Не скачивайте по одному CSV-файлы, загруженные на сайт, а прочитайте их с помощью Polars. Для этого нужно получить ссылку на файлы и использовать .read_csv.

Мы используем сайт Football-Data, который предоставляет исторические данные о футбольных матчах высших лиг всего мира. Проведем скрейпинг CSV-файла из Premier League (Премьер-лига).

Чтобы CSV-файл “Премьер-лига” оказался в списке сверху, нужно сначала получить его ссылку. Для этого наведите курсор на CSV-файл и нажмите “Copy Link Address” (“Копировать адрес ссылки”).

Получаем такую ссылку.

Теперь прочитаем ее с Polars.

import polars as pl
pl.read_csv('https://www.football-data.co.uk/mmz4281/2122/E0.csv')


Получаем датафрейм Polars со всеми данными:


Но это только CSV-файл с данными Премьер-лиги. Чтобы получить файлы с данными других лиг, таких как Championship (Чемпионат), League 1 (Лига 1) и League 2 (Лига 2), нужно добавить цикл for.

Вот как это сделать:

import polars as pl

leagues = ['E0', 'E1', 'E2', 'E3', 'EC'] # список лиг
frames = []
for league in leagues:
df = pd.read_csv(root + "2122" + "/" + league + ".csv")
frames.append(df)


Приведенный выше цикл извлечет CSV-файлы из всех соревнований в сезоне 21/22. Список leagues содержит идентификатор каждой лиги. Например, “E0” означает Премьер-лигу.

Те же шаги можно выполнить для извлечения файлов из нескольких сезонов.

Теперь посмотрим, как извлекать данные из таблиц на HTML-страницах.

Скрейпинг HTML-страниц с Polars (обходной путь)

Polars нет функции .read_html, которая позволяла бы легко извлекать таблицы из HTML-страниц. Однако есть обходной путь, который поможет превратить таблицы из HTML-страниц в Polars-датафреймы.

Для этого в дополнение к Polars нужно установить следующие библиотеки:

!pip install pandas
!pip install lxml
!pip install pyarrow

Pandas и lxml помогут извлечь данные, а pyarrow понадобится для превращения Pandas-датафрейма в Polars-датафрейм.

Извлечем табличные данные из статьи Википедии “List of The Simpsons episodes (seasons 1–20) (“Список эпизодов “Симпсонов”, сезоны 1–20”):

Сначала используем .read_html Pandas для извлечения таблиц из Википедии:

import pandas as pd
my_list = pd.read_html('https://en.wikipedia.org/wiki/List_of_The_Simpsons_episodes_(seasons_1%E2%80%9320)')


my_list содержит список датафреймов. Каждый датафрейм — это таблица со страницы Википедии.

Выберем случайную таблицу и назовем ее pandas_df.

pandas_df = my_list[5]

Теперь нужно использовать .from_pandas, чтобы превратить Pandas-датафрейм в Polars-датафрейм.

polars_df = pl.from_pandas(pandas_df)

Теперь у нас есть Polars-датафрейм со всеми собранными данными.

Чтобы превратить все Pandas-датафреймы из my_list в Polars-датафреймы, можно использовать списковое включение.

my_new_list = [pl.from_pandas(pandas_df) for pandas_df in my_list]


Вот и все! Теперь вы можете пользоваться всеми преимуществами Polars! Чтобы узнать больше о Polars, ознакомьтесь с официальной документацией или посмотрите полное руководство по Polars.

@pro_python_code
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62🔥2



tgoop.com/pro_python_code/1011
Create:
Last Update:

🖥 Быстрый веб-скрейпинг с библиотекой Polars

Polars — это библиотека Python для работы с датафреймами, по скорости превосходящая Pandas.

Как и Pandas, Polars можно использовать для парсинга сайтов. С ее помощью можно читать любые CSV-файлы, опубликованные на сайте, и даже извлекать таблицы из HTML-страниц.

Однако в настоящее время в Polars нет функции .read_html, как в Pandas. Поэтому я покажу обходной путь, позволяющий превратить таблицы с HTML-страниц в Polars-датафреймы.

Скрейпинг нескольких CSV-файлов с использованием Polars
Не скачивайте по одному CSV-файлы, загруженные на сайт, а прочитайте их с помощью Polars. Для этого нужно получить ссылку на файлы и использовать .read_csv.

Мы используем сайт Football-Data, который предоставляет исторические данные о футбольных матчах высших лиг всего мира. Проведем скрейпинг CSV-файла из Premier League (Премьер-лига).

Чтобы CSV-файл “Премьер-лига” оказался в списке сверху, нужно сначала получить его ссылку. Для этого наведите курсор на CSV-файл и нажмите “Copy Link Address” (“Копировать адрес ссылки”).

Получаем такую ссылку.

Теперь прочитаем ее с Polars.

import polars as pl
pl.read_csv('https://www.football-data.co.uk/mmz4281/2122/E0.csv')


Получаем датафрейм Polars со всеми данными:


Но это только CSV-файл с данными Премьер-лиги. Чтобы получить файлы с данными других лиг, таких как Championship (Чемпионат), League 1 (Лига 1) и League 2 (Лига 2), нужно добавить цикл for.

Вот как это сделать:

import polars as pl

leagues = ['E0', 'E1', 'E2', 'E3', 'EC'] # список лиг
frames = []
for league in leagues:
df = pd.read_csv(root + "2122" + "/" + league + ".csv")
frames.append(df)


Приведенный выше цикл извлечет CSV-файлы из всех соревнований в сезоне 21/22. Список leagues содержит идентификатор каждой лиги. Например, “E0” означает Премьер-лигу.

Те же шаги можно выполнить для извлечения файлов из нескольких сезонов.

Теперь посмотрим, как извлекать данные из таблиц на HTML-страницах.

Скрейпинг HTML-страниц с Polars (обходной путь)

Polars нет функции .read_html, которая позволяла бы легко извлекать таблицы из HTML-страниц. Однако есть обходной путь, который поможет превратить таблицы из HTML-страниц в Polars-датафреймы.

Для этого в дополнение к Polars нужно установить следующие библиотеки:

!pip install pandas
!pip install lxml
!pip install pyarrow

Pandas и lxml помогут извлечь данные, а pyarrow понадобится для превращения Pandas-датафрейма в Polars-датафрейм.

Извлечем табличные данные из статьи Википедии “List of The Simpsons episodes (seasons 1–20) (“Список эпизодов “Симпсонов”, сезоны 1–20”):

Сначала используем .read_html Pandas для извлечения таблиц из Википедии:

import pandas as pd
my_list = pd.read_html('https://en.wikipedia.org/wiki/List_of_The_Simpsons_episodes_(seasons_1%E2%80%9320)')


my_list содержит список датафреймов. Каждый датафрейм — это таблица со страницы Википедии.

Выберем случайную таблицу и назовем ее pandas_df.

pandas_df = my_list[5]

Теперь нужно использовать .from_pandas, чтобы превратить Pandas-датафрейм в Polars-датафрейм.

polars_df = pl.from_pandas(pandas_df)

Теперь у нас есть Polars-датафрейм со всеми собранными данными.

Чтобы превратить все Pandas-датафреймы из my_list в Polars-датафреймы, можно использовать списковое включение.

my_new_list = [pl.from_pandas(pandas_df) for pandas_df in my_list]


Вот и все! Теперь вы можете пользоваться всеми преимуществами Polars! Чтобы узнать больше о Polars, ознакомьтесь с официальной документацией или посмотрите полное руководство по Polars.

@pro_python_code

BY Python RU


Share with your friend now:
tgoop.com/pro_python_code/1011

View MORE
Open in Telegram


Telegram News

Date: |

1What is Telegram Channels? But a Telegram statement also said: "Any requests related to political censorship or limiting human rights such as the rights to free speech or assembly are not and will not be considered." With the “Bear Market Screaming Therapy Group,” we’ve now transcended language. Ng, who had pleaded not guilty to all charges, had been detained for more than 20 months. His channel was said to have contained around 120 messages and photos that incited others to vandalise pro-government shops and commit criminal damage targeting police stations. Image: Telegram.
from us


Telegram Python RU
FROM American