The ultimate Fabric, Power BI, SQL, and AI community-led learning event. Save €200 with code FABCOMM.
Get registeredCompete to become Power BI Data Viz World Champion! First round ends August 18th. Get started.
Hi, my code runs smoothly in Spyder, so I don't think it's an issue with my code.
However, most of my variables are dataframes, and when I copy the whole code over to the Python Script in Power BI and try to run it, my DatetimeIndex in all my dataframes are no longer shown in the preview, instead it just shows an integer index starting from 1. As a result, when I try to plot my results, it ends up only having one column of data and I can't plot a line graph.
Solved! Go to Solution.
@Anonymous,
I can reproduce your issue, just add a statement in the button of your code like pattern below:
# 'dataset' holds the input data for this script import datetime import pandas as pd import numpy as np def datetimeix(df): df['Date\t'] = pd.DatetimeIndex(df['Date\t']) df.set_index('Date\t', inplace = True) return df df = pd.read_csv(r'C:\Users\JimmyTao\Desktop\Test.csv') dataset = df
After expand, the result is like this:
Community Support Team _ Jimmy Tao
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
I got similar issue in getting data from a API datasource (Wind Financial System-A Chinese financial terminal like Bloomberg). Python script code is as follow:
import pandas as pd
from WindPy import *
w.start()
Wind_Data = w.edb("M0039354", "2000-01-01", "2024-11-11","Fill=Previous")
GDP = pd.DataFrame(Wind_Data.Data, columns=Wind_Data.Times, index=Wind_Data.Fields).T
GDP
In Python window, it did feedback transposed dataset include a date index and a column of GDP data. But in Power BI, the return left only GDP data column. The date index column disappeared. Python command line running result below:
>>> import pandas as pd
>>> from WindPy import *
>>> w.start()
.ErrorCode=0
.Data=[Already connected!]
>>>
>>> Wind_Data = w.edb("M0039354", "2000-01-01", "2024-11-11","Fill=Previous")
>>> GDP = pd.DataFrame(Wind_Data.Data, columns=Wind_Data.Times, index=Wind_Data.Fields).T
>>> GDP
CLOSE
2000-03-31 8.7
2000-06-30 9.1
2000-09-30 8.8
2000-12-31 7.5
2001-03-31 9.5
... ...
2023-09-30 4.9
2023-12-31 5.2
2024-03-31 5.3
2024-06-30 4.7
2024-09-30 4.6
[99 rows x 1 columns]
>>>
Someone help?
(don't worry, all data included are publicly available China GDP growth rate data. No sensitive/private information included.)
@Anonymous,
Could share some part of the code? Basically, the interaction between python and power bi should be like pattern below:
#dataset present the current table in power bi as input #dataset = pd.DataFrame(data, index, columns, dtype, copy) import pandas as pd completedData = dataset.fillna(method = 'backfill', inplace = False) dataset["completedValues"] = completedData[SMI missing values"] #Modify a column
Regards,
Jimmy Tao
Hi, part of the code is shown below:
import datetime import pandas as pd import numpy as np import statsmodels.api as sm def datetimeix(df): df['Date'] = pd.DatetimeIndex(df['Date']) df.set_index('Date', inplace = True) return(df) df = pd.read_csv(r'C:\Users\blai\Documents\5 year dataset.csv', encoding = "ISO-8859-1") mthnsr = cumtotal(df) mthnsr = datetimeix(mthnsr)
@Anonymous,
I can reproduce your issue, just add a statement in the button of your code like pattern below:
# 'dataset' holds the input data for this script import datetime import pandas as pd import numpy as np def datetimeix(df): df['Date\t'] = pd.DatetimeIndex(df['Date\t']) df.set_index('Date\t', inplace = True) return df df = pd.read_csv(r'C:\Users\JimmyTao\Desktop\Test.csv') dataset = df
After expand, the result is like this:
Community Support Team _ Jimmy Tao
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.