blog image

Power BI and Python Integration: Transforming Analytics

Unlock the potential of Power BI and python integration. Seamlessly integrate scripts, follow the step-by-step guide, and explore these best practices for transformative data analysis.

Microsoft Power BI provides organizations with robust tools to transform raw data into actionable insights. With its intuitive interface and seamless integration capabilities, Power BI helps create compelling visualizations, dashboards, and reports, facilitating a comprehensive understanding of their data.

Power BI’s core strength lies in its ability to streamline complex datasets into visually appealing and easy-to-understand representations. Whether it’s tracking KPIs, identifying trends, or exploring patterns, Power BI offers a versatile platform for data visualization. The significance of this tool extends beyond mere reporting; it catalyzes informed decision-making and strategic planning.

As the demand for deeper insights and predictive analytics continues to grow, combining Power BI with ML emerges as a transformative union. Integrating machine learning algorithms into Power BI opens new dimensions for data analysis, enabling organizations to move beyond descriptive analytics to predictive and prescriptive analytics.

Understanding Power BI with Python Integration

The synergy between Power BI and Python has become a game-changer in advanced analytics, elevating data analysis to new heights. Power BI’s native integration with Python introduces a seamless collaboration between a powerful business intelligence tool and the versatility of a leading programming language.

One of the pivotal features of this integration is the incorporation of Python scripts within Power BI, enabling the creation of robust machine learning (ML) models. The Python script function in Power BI allows users to develop ML models directly within their reports, leveraging Python’s extensive libraries for statistical analysis and machine learning. What distinguishes this integration is its independence from the Power BI desktop, ensuring that ML models remain autonomous entities capable of automatically updating and generating predictions on live data whenever the model is executed or the dataset is refreshed.

How to Integrate Machine Learning in Power BI with Python

The integration of ML into tools like Power BI has become a pivotal milestone in business intelligence. Here are the steps to integrate Machine Learning in Power BI with Python:

Milestone 1: Integration of Python in Power BI

  • Make sure Python is installed on your PC.
  • Open Power BI Desktop.
  • Go to “File” > “Options and Settings” > “Options” > “Python Scripting.” This will bring up the Python script options page. You can check if the Python directory is added there by default.
  • If required, input or modify the path for your local Python installation under Detected Python home directories. If you have multiple local Python installations, carefully choose the one you intend to utilize. (optional)
  • Click OK to confirm and save your changes. 
  • Click on “Get Data” and choose the source where your dataset is located (e.g., CSV, SQL Server, Excel).
  • Click on Transform Data, instead of Load Data.
  • In the Power Query Editor, select the table where you want to apply the Python script.
  • Click on the “Transform” Tab > “Run Python Script.”
  • In the “Run Python Script” window, enter your Python code. You can use the input columns and parameters within your Python script.
  • Ensure that your Python script returns a Pandas DataFrame or other supported data structures.
  • After running the Python script, you can preview the output by expanding the output table, in the “Value” column.
  • Click “OK” to apply the changes and load the data into Power BI.

Milestone 2: Running ML Model in Power BI Desktop

  • Open Power BI Desktop.
  • Click on “Get Data” and choose the source where your dataset is located (e.g., CSV, SQL Server, Excel).
  • Click on Transform Data, instead of Load Data.
  • In the Power Query Editor, select the table where you want to apply the Python script.
  • Once your data is ready, you can start using Python scripts. Click on the “Transform” Tab and then select “Python Script.”
  • Write or paste your Python-based ML script into the editor.
  • Execute the Python-based ML script by clicking on the “Run Script” button.
  • After running the Python script, you can preview the output by expanding the output table, in the “Value” column.
  • Click “OK” to apply the changes and load the data into Power BI.


  • If we want to make the ML model independent from the desktop so that the model should run by itself on Power BI Service and update itself once the dataset starts refreshing, it is only possible by using Personal Gateways.
  • Because making the script model-independent using a loop function in Power BI doesn’t support loops.
  • Power BI has limitations when it comes to running continuous loops, and long-running operations might result in the report not rendering properly or appearing to be stuck.

Milestone 3: Installation of Personal Gateway

  • Download Power BI Gateway (Personal Mode).
  • Install Power BI Gateway on the machine where Python is installed.
  • Configure Power BI Gateway, by signing in with your PBI account credentials.
  • Verify Connection on Power BI Service.

Milestone 4: Trying simple Python script and publishing on the PBI Service 

  • Open Power BI Desktop.
  • Click on “Get Data” and choose the source where your dataset is located. (To refresh the dataset on the Power BI service try importing the cloud-based dataset, but if you’re using an on-premise dataset you need to set up a Gateway for the dataset as well)
  • Click on Transform Data, instead of Load Data.
  • In the Power Query Editor, select the table where you want to apply the Python script.
  • Click on the “Transform” Tab > “Run Python Script.”
  • Write a simple Python script (for example, summing the values from a column and adding the total value in a new column) and check the output.
  • The Python script will work properly on the desktop.
  • If we publish the report on the Power BI service, it will show an error if we try to refresh the dataset.
  • But, after connecting with the personal gateway, that error will be solved and the model will become independent.

Milestone 5: Running Basic ML Queries

  • Similarly, we can create ML models like Regression, Classification, Clustering, Anomaly Detection, and many more using Python script and integrate with Power BI Reports.
  • After running the ML script in Power Query. We can publish the report on the Power BI service.
  • When the user refreshes the Dataset on the Power BI service, the ML Script is updated and executed accordingly. Schedule refresh will also work fine.


  1. We just need to keep in mind that Power BI only supports some limited packages so we need to use that only to write ML scripts.
  2. An Active Personal Gateway(Connected with the machine where Python is installed) is required to run Python-integrated Reports on Power BI Service.

Benefits of Using Python for Machine Learning in Power BI

The decision to harness Python for machine learning within Power BI has multiple benefits. 

Extensive Libraries and Ecosystem

Python’s vast array of libraries, such as NumPy, Pandas, and Scikit-learn, equips Power BI users with a rich set of tools for data manipulation, analysis, and model development. This amalgamation of Power BI’s visualization capabilities with Python’s libraries creates a potent environment for crafting sophisticated ML models.

Seamless Integration with Power BI

The native integration of Python in Power BI is designed for simplicity and efficiency. Users can seamlessly embed Python scripts into their Power BI reports, fostering a cohesive workflow that integrates advanced analytics effortlessly. This synergy allows analysts and data scientists to work within a familiar environment while leveraging the diverse functionalities of Python.

Real-Time Predictions and Updates

A critical advantage lies in the ability to generate real-time predictions. The ML models, once integrated, operate independently, providing instant insights as soon as new data is fed into the system. This real-time responsiveness adds a layer of dynamism to data-driven decision-making processes.

Best Practices and Tips for Integrating Machine Learning in Power BI Using Python

Adopting best practices and leveraging key tips becomes critical for businesses targeting a seamless and effective integration of machine learning within Power BI using Python. Here are some of the best practices and tips:

Optimizing Performance

To enhance the performance of machine learning models in Power BI, consider optimizing your scripts and queries. Aim for efficiency in data processing, and minimize unnecessary computations. Additionally, choose the appropriate algorithms and techniques that align with the scale and nature of your data.

Efficient Handling of Large Datasets

When working with large datasets, implement strategies for efficient data handling. Utilize Power BI’s native features for data modeling and aggregation, and consider pre-processing steps to reduce the volume of data without compromising the integrity of your analysis.

Version Control for Python Scripts

Establish a version control system for your Python scripts within Power BI. This ensures traceability and facilitates collaboration among team members. Having a version history enables you to track changes, revert to previous states, and maintain a structured development environment.

Data Security and Compliance

Prioritize data security and compliance when integrating machine learning in Power BI. Ensure that sensitive information is handled appropriately, implement encryption protocols, and adhere to regulatory requirements. Regularly update security measures to mitigate potential vulnerabilities.

Documentation and Knowledge Transfer

Thoroughly document your machine learning models, scripts, and data sources within Power BI. This documentation is invaluable for knowledge transfer within teams, aiding in troubleshooting, and facilitating future enhancements or modifications. Clear documentation fosters collaboration and ensures the sustainability of your analytics solutions.

Regular Model Monitoring and Maintenance

Implement a robust monitoring system for your machine learning models post-integration. Regularly assess model performance, identify deviations, and update models as necessary. This proactive approach ensures that your models remain accurate and relevant in dynamic business environments.

Testing and Validation

Before deploying machine learning models in a production environment, conduct thorough testing and validation. Validate the accuracy of predictions against historical data, assess the model’s generalization to new data, and ensure that it meets the desired performance criteria. Rigorous testing minimizes the risk of inaccuracies in real-world applications.

Wrapping up

As we stand at the intersection of Power BI’s robust data visualization capabilities and the predictive prowess of Python-based machine learning, the future of data intelligence is both exciting and transformative. The road is marked by continuous evolution and innovation powered by artificial intelligence and machine learning.

The demand for deeper insights and real-time predictions from machine learning companies and Power BI service providers will drive further enhancements in overall capabilities and Python’s role in this synergy will only become more integral among AI/ML companies. The combination of Power BI and Python is not merely a collaboration of technologies in dynamic analytics; it’s a strategic alliance that empowers businesses to navigate the complexities of the modern data landscape.

Originally Published on Medium

Leave a Reply Protection Status