将 Pythonnet 结果集转换为 pandas 数据框

问题描述 投票:0回答:1

我正在使用 Pythonnet 查询多维数据集并在 System.Data 的数据集中返回结果。现在我想将 DataSet 转换为 Pandas 的数据框。

完整代码:

clr.AddReference("r"C:\Windows\assembly\GAC_MSIL\Microsoft.AnalysisServices.AdomdClient\11.0.0.0__89845dcd8080cc91\Microsoft.AnalysisServices.AdomdClient.dll"")
clr.AddReference ("System.Data")
from Microsoft.AnalysisServices.AdomdClient import AdomdConnection , AdomdDataAdapter
from System.Data import DataSet
conn = AdomdConnection("Data Source=tooldata.amr.xxx.com;Catalog=someDB;")
conn.Open()
cmd = conn.CreateCommand() 
cmd.CommandText = "your mdx query" 
adp = AdomdDataAdapter(cmd)
datasetParam =  DataSet()
adp.Fill(datasetParam)
#convert datasetParam into Pandas' dataframe?
conn.Close();

有没有简单的方法可以做到这一点?

python pandas olap python.net
1个回答
0
投票

要使用 pythonnet 从olap获取数据,您可以使用mdx-to-pd

from mdx_to_pd import mdx_retriever

connection = "Data Source=https://biserver.company.com/database/;Catalog=Model;"
query = """
        SELECT NON EMPTY [Measures].[Order Count] ON COLUMNS,
        NON EMPTY ([Markets].[Country].[Country]) ON ROWS
        FROM [OLAP_CUBE]
        """
# returns pd.DataFrame()

df = mdx_retriever(query, connection)
© www.soinside.com 2019 - 2024. All rights reserved.