10

我们可以使用 Iron python 在 .NET 空间中加载 pandas DataFrame 吗?如果不是,我正在考虑将 pandas df 转换为 csv 文件,然后在 .net 空间中读取。

4

3 回答 3

10

不,Pandas 与 CPython 紧密相关。就像你说的,你最好的办法是用 Pandas 在 CPython 中进行分析并将结果导出到 CSV。

于 2013-01-21T16:34:02.520 回答
3

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

我仍在调查类似的案例——我们想在 python 中处理数据,然后在 c# 中使用结果。我们的要求是(最好)保持 python 部分平台独立,以便我们可以在 linux 或 windows 上运行我们的数字运算。长话短说,我们决定使用带有消息包的二进制序列化/反序列化:http: //msgpack.org/index.html

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

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"));

二进制序列化的主要优点:

于 2015-10-26T13:20:07.117 回答
1

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

https://github.com/pythonnet/pythonnet/tree/develop

于 2014-12-30T16:54:47.757 回答