Как реализовать импутацию с помощью скрипта Python в Power BI? - PullRequest
0 голосов
/ 20 мая 2019

Я пытаюсь запустить проверенный скрипт Python для вменения данных в PowerBI.Данные первоначально консолидируются в Power BI, затем экспортируются в Excel, вменяются и анализируются с помощью Python.

Теперь я хотел бы использовать код из Python в редакторе запросов Power BI, чтобы я мог получить вмененные данныенепосредственно в Power BI и использую его визуализации, но я получаю ошибки.

Я попытался вставить тот же код, что и в Python, в Power BI - думаю, может быть проблема с синтаксисом.

dataset=#"PreviousStep"

import pandas as pd

byISO = dataset.groupby(['country ISO'])
byIG = dataset.groupby(['WBG Income Group'])
bytIG = dataset.groupby(['WBG Income Group','Year'])
bytR = dataset.groupby(['UN Sub-Region','Year'])

#Country-level
#Filling up and down
dataset[['col1','col2']] = byISO[['col1','col2']].fillna(
        method='ffill')
dataset[['col1','col2']] = byISO[['col1','col2']].fillna(
        method='bfill')
#Interpolation
dataset[['col1','col2']] = byISO[['col1','col2']]\
         .apply(lambda i: i.interpolate(method='linear', limit_area='inside'))
#Extrapolation (FILLING DOWN CURRENTLY)
dataset[['col1','col2']] = byISO[['col1','col2']]\
         .apply(lambda i: i.interpolate(method='linear', limit_area='outside'))
#Median
dataset[['col1','col2']] = byISO[['col1','col2']]\
    .transform(lambda i: i.fillna(i.median()))

#Group-level
#Median
dataset[['col1','col2']] = byIG[['col1','col2']]\
    .transform(lambda i: i.fillna(i.median()))
#Yearly median
dataset[['col1','col2']] = bytIG[['col1','col2']]\
    .transform(lambda i: i.fillna(i.median()))

#Region-level
#Yearly median
dataset[['col1','col2']] = bytR[['col1','col2']]\
    .transform(lambda i: i.fillna(i.median()))
#No level (All)
#0
dataset[['col1','col2']].fillna(0)

Я ожидаю таблицу с вмененными значениями, но вместо этого получаю эту ошибку:

DataSource.Error: ADO.NET: Python script error.
Traceback (most recent call last):
  File "PythonScriptWrapper.PY", line 2, in <module>
    import os, pandas, matplotlib.pyplot
  File "C:\Users\GEscamilla\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\__init__.py", line 19, in <module>
    "Missing required dependencies {0}".format(missing_dependencies))
ImportError: Missing required dependencies ['numpy']

Details:
    DataSourceKind=Python
    DataSourcePath=Python
    Message=Python script error.
Traceback (most recent call last):
  File "PythonScriptWrapper.PY", line 2, in <module>
    import os, pandas, matplotlib.pyplot
  File "C:\Users\GEscamilla\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\__init__.py", line 19, in <module>
    "Missing required dependencies {0}".format(missing_dependencies))
ImportError: Missing required dependencies ['numpy']

    ErrorCode=-2147467259
    ExceptionType=Microsoft.PowerBI.Scripting.Python.Exceptions.PythonScriptRuntimeException

1 Ответ

0 голосов
/ 20 мая 2019

Если вы посмотрите на вывод ошибки, он говорит вам

ImportError: Missing required dependencies ['numpy']

Это означает, что вы должны импортировать numpy вместе с другими вашими инструкциями import, как говорит @prathik в комментарии. Вы можете найти пример здесь от microsoft

import numpy

Если это не сработает, убедитесь, что вам нужно установить с

pip install numpy

Большая картинка

Вам следует рассмотреть возможность размещения сценария перед панелью мониторинга, чтобы преобразованные данные могли использоваться и другими панелями управления.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...