Pythonnet System.Object[] 到 Pandas DataFrame 或 Numpy 数组
Pythonnet System.Object[,] to Pandas DataFrame or Numpy Array
我正在使用 Pythonnet 调用一个 C# 函数,其中 returns 一个 clr 对象(一个 n x m 矩阵) .在 python 中,类型是 System.Object[]。
如何将此变量转换为 Pandas DataFrame 或更易于管理的东西?
谢谢。
最后我能想出的唯一解决办法是抓取它直到得到这样的 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)
编辑:这是 n x m 版本
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))
pd.DataFrame([[obj[j, i] for j in range(obj.GetLength(1))] for i in range(obj.GetLength(0))])
我正在使用 Pythonnet 调用一个 C# 函数,其中 returns 一个 clr 对象(一个 n x m 矩阵) .在 python 中,类型是 System.Object[]。 如何将此变量转换为 Pandas DataFrame 或更易于管理的东西?
谢谢。
最后我能想出的唯一解决办法是抓取它直到得到这样的 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)
编辑:这是 n x m 版本
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))
pd.DataFrame([[obj[j, i] for j in range(obj.GetLength(1))] for i in range(obj.GetLength(0))])