You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Pythonnet获取的System.Data DataSet转换为Pandas DataFrame?

将System.Data.DataSet转换为Pandas DataFrame(Pythonnet场景)

你可以通过遍历DataSet中的DataTable,提取列名和行数据来快速转换为Pandas DataFrame,以下是简便的实现方式:

完整实现代码

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
import pandas as pd

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)

# 核心转换逻辑
data_table = datasetParam.Tables[0]  # 取DataSet中的第一个DataTable,多表场景可指定索引
columns = [col.ColumnName for col in data_table.Columns]
df = pd.DataFrame([[row[col] for col in columns] for row in data_table.Rows], columns=columns)

conn.Close()

# 验证转换结果
print(df.head())

关键说明

  • 先从DataSet中获取目标DataTable:通常取第一个表(Tables[0]),如果存在多表,可根据实际需求指定对应索引
  • 提取DataTable的列名作为DataFrame的列标签
  • 遍历DataTable的每一行,将行数据转为Python列表,最终通过pd.DataFrame构造DataFrame
  • Pythonnet会自动处理大部分.NET基本类型(如字符串、数字、日期)到Python类型的转换,特殊类型可按需额外处理

内容的提问来源于stack exchange,提问作者marc nicole

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 21:47:17