Python в Power BI: импорт, Power Query и визуализации

Python в Power BI: импорт, Power Query и визуализации

Обновлено 2 сентября 2026 года.

В Power BI Python используют для получения таблиц, преобразования данных в Power Query и построения Python-визуализаций. Это три разных сценария выполнения. Скрипт, работающий на компьютере автора, ещё нужно проверить в выбранном варианте публикации и обновления.

Настройка Python в Desktop

Установите Python и библиотеки pandas и matplotlib в ту среду, которую будет запускать Power BI. В Desktop откройте «Файл → Параметры и настройки → Параметры → Скрипты Python» и проверьте путь к интерпретатору. При нескольких установках Python библиотека может оказаться установлена не в той среде.

Порядок настройки и ограничения импорта описаны в руководстве Microsoft по запуску Python-скриптов. Не добавляйте интерактивный ввод или ожидание нажатия клавиши: обновление отчёта должно выполняться без участия человека.

1. Получить таблицу из скрипта

Выберите «Главная → Получить данные → Другие → Скрипт Python» и вставьте пример:

import pandas as pd

sales = pd.DataFrame({
    "RowID": [1, 2, 3],
    "Product": ["A", "A", "B"],
    "Amount": [100.0, 150.0, 200.0]
})

В навигаторе выберите DataFrame sales и загрузите его. Ожидаемый результат — три строки с общей суммой Amount = 450. Для импорта Power BI использует pandas DataFrame; произвольный объект Python сам по себе не становится таблицей модели. При обновлении скрипт выполняется снова.

2. Преобразовать существующую таблицу в Power Query

В редакторе Power Query выберите запрос, затем на вкладке преобразования — запуск скрипта Python. Входная таблица доступна как dataset. Например, для проверки числового типа:

import pandas as pd

result = dataset.copy()
result["Amount"] = pd.to_numeric(result["Amount"], errors="raise")

Выберите результирующий DataFrame result. Значение, которое невозможно преобразовать в число, вызовет ошибку. Это позволяет заметить проблему источника, а не незаметно заменить её нулём. Если нужна обработка пропусков, задайте отдельное обоснованное правило. Заполнение следующим известным значением не является само по себе прогнозной моделью и может использовать будущую информацию.

Читай также:  Битрикс24 и аналитика данных: BI Конструктор, Power BI и внешнее хранилище

Сценарий выполнения и требования к обновлению приведены в документации Python в Power Query. Python-шаг выполняется при обработке запроса, а не при каждом выборе среза импортированного отчёта.

3. Построить Python-визуализацию

Добавьте Python-визуализацию на страницу и передайте ей RowID, Product и Amount из учебной таблицы. У числовых полей проверьте режим агрегации. RowID нужен, чтобы разные исходные строки с одинаковыми остальными значениями не схлопнулись при группировке входа визуализации. Затем вставьте:

import matplotlib.pyplot as plt

totals = dataset.groupby("Product", as_index=False)["Amount"].sum()
totals.plot.bar(x="Product", y="Amount", legend=False)
plt.ylabel("Amount")
plt.tight_layout()
plt.show()

На графике должны быть A = 250 и B = 200. Python-визуализация получает только переданные ей поля. Она перерисовывается при изменении входных данных и фильтров, однако результат отображается как изображение: выбирать столбцы этого графика для перекрёстной фильтрации других элементов нельзя. Ограничения объёма и времени выполнения указаны в документации Python-визуализаций.

Что проверить после публикации

Обновление запроса с Python и отрисовка Python-визуализации в сервисе используют разные условия выполнения. Для обновления Python-шагов Power Query Microsoft описывает personal gateway на машине с Python; также действуют требования к уровням конфиденциальности источников. Если эти условия не подходят данным организации, вынесите обработку в отдельный процесс и подключите готовую таблицу.

У Python-визуализаций сервиса ограничен набор библиотек и сетевой доступ. Установка пакета на компьютере автора не устанавливает его в сервис. Сверяйте список пакетов и ограничения среды, а затем проверьте опубликованный отчёт под учётной записью зрителя.

Длительное обучение модели, Selenium и регулярный сбор данных с сайтов обычно удобнее выполнять отдельным заданием с журналом и повторными попытками. Power BI в этом случае читает подготовленный результат. Такая схема помогает отделить сбой получения данных от ошибки отображения отчёта.