3

我正在使用 Pythonnet 调用一个 C# 函数,该函数返回一个 clr 对象(一个n x m矩阵)。在 python 中,类型是System.Object[,]。如何将此变量转换为 Pandas DataFrame 或更易于管理的东西?

谢谢你。

4

2 回答 2

2
pd.DataFrame([[obj[j, i] for j in range(obj.GetLength(1))] for i in range(obj.GetLength(0))])
于 2019-05-07T16:01:18.570 回答
1

最后,我能想出的唯一解决方案是抓取它,直到得到这样的 IndexError:

import pandas as pd
def ObjectToDataFrame_nx2(obj)
 ts=pd.DataFrame(columns=['Dim1','Dim2'])
 i=0
 while True:
  try:
    dim1=obj[i,0]
    dim2=obj[i,1]
  except IndexError:
    break
  ts=ts.append({'Dim1': dim1, 'Dim2': dim2},ignore_index=True)
  i+=1
 return(ts)

编辑:这是 nxm 版本

def ObjectToDataFrame_nxm(obj):
    i=0
    vvec=[]
    while True:
        j=0
        vec=[]
        try:
            while True:
                try:
                    vec.append(obj[i,j])
                except IndexError:
                    break
                j+=1
            dummy = obj[i,0]
            vvec.append(vec)
        except IndexError:
            break
        i+=1
    return(pd.DataFrame(vvec))
于 2018-03-21T13:15:23.987 回答