th 30 - Maximize Power BI's Potential: Python and Multiple Tables in Query Editor

Maximize Power BI’s Potential: Python and Multiple Tables in Query Editor

Posted on
th?q=Power Bi: How To Use Python With Multiple Tables In The Power Query Editor? - Maximize Power BI's Potential: Python and Multiple Tables in Query Editor

Are you looking for ways to maximize Power BI’s potential? If so, then this article is for you! By using Python and Multiple Tables in Query Editor, you can take your data analysis and visualization skills to the next level.

The integration of Python into Power BI allows you to perform complex data manipulations and transformations with ease. With Python, you can create custom scripts and algorithms to analyze your data in ways that are not possible with Power BI alone. Plus, Python’s powerful libraries, such as NumPy and Pandas, provide even more flexibility and functionality for your data analysis.

Moreover, by working with multiple tables in Query Editor, you can efficiently organize your data and optimize your visualizations. The Query Editor offers a series of transformation steps that enable you to unite and align multiple tables in one coherent dataset. This function helps to reduce the time spent on managing extensive data resources and enables faster queries and more informative visualizations.

So, what are you waiting for? Discover how you can unlock the full potential of Power BI by utilizing Python and Multiple Tables in Query Editor. Continue reading to learn more about this topic and get ready to take your analytical capabilities to the next level!

th?q=Power%20Bi%3A%20How%20To%20Use%20Python%20With%20Multiple%20Tables%20In%20The%20Power%20Query%20Editor%3F - Maximize Power BI's Potential: Python and Multiple Tables in Query Editor
“Power Bi: How To Use Python With Multiple Tables In The Power Query Editor?” ~ bbaz


Power BI has become one of the most favored business intelligence tools over the past years. Its competitive edge includes user-friendly dashboards, rich interactive visuals and an array of connectors to various data sources. However, there are times where a more advanced analysis is needed. That is where Python and multiple tables in Query Editor come into the picture.

Python Integration

Python notebooks can handle more complex calculations and statistical analyses compared to Power BI. Linking Power BI with Python, enables you to utilize these analysis capabilities within Power BI reports. Python integration typically requires programming experience, but utilizing pre-developed Python packages minimize technical requirements significantly.


Power BI Python
Average Monthly Sales Time Series Analysis Forecasting
Summarizing Data Clustering Analysis (k-means)
Trend Analysis Regression Analysis

Multiple Tables in Query Editor

Query Editor offers a strong foundation for data analytics by providing various options for cleaning, shaping and formatting data. Power BI’s standard method utilizes a single query containing numerous transformations. On the other hand, the ability to create multiple queries in Query Editor allows users to design further complex analytics and obtain noteworthy analysis outcomes by linking and transforming different tables using SQL-like statements called M Language.


Single Query Multiple Queries
Data Cleansing Data Cleansing
Filtering Filtering
Join & Union Inner Join, Left Outer Join & Full Outer Join

Power BI: Python Integration Example

Suppose that we have monthly sales data (Figure 1) for the electronics store, and we want to predict future sales trend for each product category using Python.

9ZLoVIl - Maximize Power BI's Potential: Python and Multiple Tables in Query Editor

We import the needed python libraries and create a forecast function. We also define an extra SQL-like command using m-language in Query Editor to prepare the data by ordering and grouping it based on the categories and month.

“`let Source = Sql.Database(localhost, SalesData), dbo_FactSales = Source{[Schema=dbo,Item=FactSales]}[Data], #Sorted Rows = Table.Sort(dbo_FactSales,{{CategoryKey, Order.Ascending}, {MonthKey, Order.Ascending}}), #Grouped Rows = Table.Group(#Sorted Rows, {Category, MonthYear}, {{SalesTotal, each List.Sum([SalesAmount]), type nullable number}})in #Grouped Rows“`

Next, we reference the above query in our Python Notebooks. The below code uses Scikit-learn time series forecasting package that produces predicted sales for each category up to 12 months into the future.

“`import pandas as pdimport numpy as npimport matplotlib.pyplot as pltfrom sklearn.metrics import mean_squared_errorfrom statsmodels.tsa.seasonal import seasonal_decomposefrom statsmodels.tsa.arima.model import ARIMAfrom dateutil.relativedelta import relativedelta# Connecting to Power BI Query Editordef get_data(): df_query = pd.read_csv(‘https://localhost:XXXXX/MyWorkspace?%24filter=CategoryKey+eq+1’) return df_querydf_category = get_data()df_category[‘MonthYear’] = pd.to_datetime(df_category[‘MonthYear’])df_category.set_index(‘MonthYear’, inplace=True)# Time Series Analysis with Python def forecast_sales(data): p,d,q = 0, 1, 1 history = [x for x in data.values] predictions = list() model = ARIMA(history, order=(p,d,q)).fit(disp=-1) pred = model.forecast() predicted_sales = round(int(pred[0])) return predicted_salessales_forecast = []for category in df_category.Category.unique(): temp = df_category.loc[df_category[‘Category’]==category] sales = forecast_sales(temp[‘SalesTotal’]) sales_forecast.append([category, sales]) df_sales_forecast = pd.DataFrame(sales_forecast, columns=[‘Category’, ‘SalesForecast’])“`

Finally, we reference our Python output query back into Power BI and visualize monthly sales and their forecasts (Figure 2). We can notice that Power BI reports are still able to handle user interactions for both visuals.

mFjJgBZ - Maximize Power BI's Potential: Python and Multiple Tables in Query Editor

Power BI: Multiple Tables in Query Editor Example

Suppose that we have 3 related sales tables: “Orders”, “Order_Details” and “Products” (Figure 3). We want to know which products generate the highest revenue and profit for specific date periods imposed by the user.

vrpjc0g - Maximize Power BI's Potential: Python and Multiple Tables in Query Editor

We create a separate query for each of our three tables, as follows:

“`let Source = Sql.Database(localhost, SalesData), dbo_Orders = Source{[Schema=dbo,Item=Orders]}[Data], #Removed Other Columns = Table.SelectColumns(dbo_Orders,{OrderKey, OrderDate}), #Filtered Rows = Table.SelectRows(#Removed Other Columns, each Date.Year([OrderDate]) >= 2015), #Sorted Rows = Table.Sort(#Filtered Rows,{{OrderDate, Order.Descending}})in #Sorted Rows“““let Source = Sql.Database(localhost, SalesData), dbo_OrderDetails = Source{[Schema=dbo,Item=Order_Details]}[Data], dbo_Products = Source{[Schema=dbo,Item=Products]}[Data], #Removed Other Columns = Table.SelectColumns(dbo_OrderDetails,{OrderKey, ProductKey, UnitPrice, Discount}), #Joined Queries = Table.NestedJoin(#Removed Other Columns,{ProductKey},dbo_Products,{ProductKey},dbo_Products,JoinKind.Inner), #Merged Queries = Table.MergeColumns(#Joined Queries,{dbo_Products.ProductName}, {ProductName}), #Calculated Columns = Table.AddColumn(#Merged Queries, Revenue, each ([UnitPrice]*(1-[Discount]))*1000), #Grouped Rows = Table.Group(#Calculated Columns, {dbo_Products.ProductName}, {{RevenueTotal, each List.Sum([Revenue]), type nullable number}}), #Sorted Rows = Table.Sort(#Grouped Rows,{{RevenueTotal, Order.Descending}})in #Sorted Rows“““let Source = Sql.Database(localhost, SalesData), dbo_Products = Source{[Schema=dbo,Item=Products]}[Data], #Removed Other Columns = Table.SelectColumns(dbo_Products,{ProductKey, ProductName, ListPrice}), #Sorted Rows = Table.Sort(#Removed Other Columns,{{ListPrice, Order.Descending}})in #Sorted Rows“`

Finally, we merge the three tables using two merge queries and then filter based on user-defined date range, this time using SQL code:

“`let Source = Sql.Database(localhost, SalesData), dbo_FilteredOrders = Source{[Schema=dbo,Item=FilteredOrders]}[Data], dbo_OrderDetailsProducts = Source{[Schema=dbo,Item=OrderDetailsProducts]}[Data], #Filtered Dates = Sql.Database(localhost, SalesData, [Query=SELECT * FROM dbo_FilteredOrders WHERE OrderDate BETWEEN ’01/01/2016′ AND ’12/31/2016′, CreateNavigationProperties=false]), #Merged Queries = Table.NestedJoin(#Filtered Dates,{OrderKey},dbo_OrderDetailsProducts,{OrderKey},dbo_OrderDetailsProducts,JoinKind.Inner), #Removed Columns = Table.SelectColumns(#Merged Queries,{dbo_OrderDetailsProducts.ProductName, dbo_OrderDetailsProducts.RevenueTotal}), #Grouped Rows = Table.Group(#Removed Columns, {dbo_OrderDetailsProducts.ProductName}, {{TotalRevenue, each List.Sum([RevenueTotal]), type nullable number}}), #Sorted Rows = Table.Sort(#Grouped Rows,{{TotalRevenue, Order.Descending}})in #Sorted Rows“`

We now visualize the report using a combination chart with revenue and profit on the Y-axis and product names on X-axis. The resultant report is interactive, giving us the ability to choose specific dates.

4En2Y6o - Maximize Power BI's Potential: Python and Multiple Tables in Query Editor


Python integration and multiple tables in Query Editor are two essential tools for tackling advanced data analysis in Power BI. Python integration allows proficient micro-level statistical analyses within Power BI reports while query editor’s multi-table functionality enable macro-level data processing and analysis that go beyond a single table. Incorporating these tools can produce efficient and innovative solutions for visualization and analytics.

Dear valued readers,

Thank you for taking the time to read our article on maximizing Power BI’s potential with Python and multiple tables in Query Editor. We hope that you found the information provided helpful and informative.

By using Python and multiple tables in Query Editor, you can enhance the capabilities of Power BI and develop more sophisticated visualizations. With the ability to manipulate data across multiple tables, you can gain deeper insights into your data and create more customized reports that are specific to your organization’s needs.

We encourage you to continue exploring the possibilities of Power BI and to keep learning new ways to optimize the platform for your business. Don’t hesitate to reach out to us if you have any questions or comments about this article or any other topics related to data analytics and visualization.

Thank you again for your interest in our article. We look forward to sharing more insights with you in the future.

People Also Ask about Maximize Power BI’s Potential: Python and Multiple Tables in Query Editor:

  1. What is Power BI?
  2. Power BI is a business analytics service by Microsoft that enables users to visualize and analyze data with greater ease and efficiency.

  3. How can Python enhance Power BI’s potential?
  4. Python can be used as a programming language within Power BI to extend its capabilities for data manipulation, analysis, and visualization. It allows users to write custom functions and algorithms, and provides access to many powerful libraries for data science and machine learning.

  5. What are the benefits of using multiple tables in Query Editor?
  6. Using multiple tables in Query Editor can help to organize and combine data from different sources, improve data quality by eliminating duplicates and inconsistencies, and provide more flexibility for analysis and reporting.

  7. How can I use Python with multiple tables in Query Editor?
  8. You can use Python to transform and merge data from multiple tables in Query Editor by writing custom scripts or using pre-built packages like Pandas. This can help to automate repetitive tasks, perform complex calculations, and create more sophisticated data models.

  9. Are there any limitations to using Python and multiple tables in Query Editor?
  10. While Python and multiple tables in Query Editor offer many advantages, there may be some limitations depending on the complexity of your data and the resources available. For example, large datasets may require additional processing power or memory, and certain types of data may not be compatible with Python or certain tools.