我们可以在.NET ironpython中加载数据帧吗?

我们可以在.NET ironpython中加载数据帧吗?,python,.net,pandas,ironpython,python.net,Python,.net,Pandas,Ironpython,Python.net,我们可以使用iron python在.NET空间中加载熊猫数据帧吗?如果没有,我正在考虑将pandas df转换为csv文件,然后在.net空间中读取。不,pandas与CPython的关系非常好。正如您所说,您最好使用Pandas在CPython中进行分析,并将结果导出到CSV。可以使用Python.NET从.NET调用CPython: 关于包括序列化在内的选项: 我仍在调查类似的情况——我们希望用python处理数据,然后用c#使用结果。我们的要求是(最好)保持python部分平台独立,这样

我们可以使用iron python在.NET空间中加载熊猫数据帧吗?如果没有,我正在考虑将pandas df转换为csv文件,然后在.net空间中读取。

不,pandas与CPython的关系非常好。正如您所说,您最好使用Pandas在CPython中进行分析,并将结果导出到CSV。

可以使用Python.NET从.NET调用CPython:


关于包括序列化在内的选项:

我仍在调查类似的情况——我们希望用python处理数据,然后用c#使用结果。我们的要求是(最好)保持python部分平台独立,这样我们就可以在linux或windows上运行数字处理。 长话短说,我们决定对消息包使用二进制序列化/反序列化:

我们将数据帧值转换为列表,并序列化为文件:

import msgpack as mp
data_as_list = df.values.tolist()
mp.pack(data_as_list, open("d:\\msgpack1.mp",'wb'))
然后在C端,我们使用MessagePack的.net实现来反序列化数据:

using MsgPack;
var serializer =
   SerializationContext.Default.GetSerializer<MessagePackObject[][]>();
var unpackedObject = serializer.Unpack(File.OpenRead("d:\\msgpack1.mp"));
使用MsgPack;
变量序列化程序=
SerializationContext.Default.GetSerializer();
var unpackeobject=serializer.Unpack(File.OpenRead(“d:\\msgpack1.mp”);
二进制序列化的主要优点:

  • 与基于文本的序列化格式(如csv、json或xml)相比,不太容易出现任何与编码相关的问题
  • 根据数据的不同,它可以比CSV更快(在我们的案例中):

熊猫依赖于numpy,据我所知,numpy到IronPython已经有了一个相当可靠的端口。但它也依赖于Cython和C来实现高性能,对吗?后者可能是最大的问题,而不是numpy。有用的帖子。我有相同的用例场景。