Join us for an expert-led overview of the tools and concepts you'll need to pass exam PL-300. The first session starts on June 11th. See you there!
Get registeredPower BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. Register now.
Hi,
I have a very simple static demo table
Category | Amount |
A | 1 |
B | 2 |
That table is my source.
I am trying to add a Python script right after the source step.
That script adds the totals of the [Amount] column but am getting an error.
Python code:
import pandas as pd
total_sum = dataset['Amount'].sum()
dataset['Total'] = total_sum
result = dataset
error:
We encountered an error while trying to connect
Details: "ADO.NET: Python script error.
<pi>NameError: name 'dataset' is not defined
</pi>"
Any advice would be appreciated,
Thank you,
Tamir
Solved! Go to Solution.
Thank you @lbendlin ,
Although unnecessary, that line just returns another dataset (the default "dataset" and "result")
The problem was that I was missing the parameter that assigned the step to the dataset.
In your M code, it is this:
[dataset=#"Changed Type"]
Once I added that parameter to my M code, it worked.
Regards,
Tamir
Thank you @lbendlin ,
Although unnecessary, that line just returns another dataset (the default "dataset" and "result")
The problem was that I was missing the parameter that assigned the step to the dataset.
In your M code, it is this:
[dataset=#"Changed Type"]
Once I added that parameter to my M code, it worked.
Regards,
Tamir
Drop the last line. Python scripts by default return the "dataset" frame back to you.
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WclTSUTJUitWJVnICsoyUYmMB", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Category = _t, Amount = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Amount", Int64.Type}}),
#"Run Python script" = Python.Execute("# 'dataset' holds the input data for this script#(lf)total_sum = dataset['Amount'].sum()#(lf)dataset['Total'] = total_sum",[dataset=#"Changed Type"]),
dataset = #"Run Python script"{[Name="dataset"]}[Value]
in
dataset