我们可以使用 Iron python 在 .NET 空间中加载 pandas DataFrame 吗?如果不是,我正在考虑将 pandas df 转换为 csv 文件,然后在 .net 空间中读取。
问问题
8705 次
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"));
二进制序列化的主要优点:
- 与基于文本的序列化格式(如 csv、json 或 xml)相比,更不容易出现任何与编码相关的问题
- 根据数据,它可能比 CSV 更快(在我们的例子中): http: //matthewrocklin.com/blog/work/2015/03/16/Fast-Serialization/
于 2015-10-26T13:20:07.117 回答
1
可以使用 Python.NET 从 .NET 调用 CPython:
于 2014-12-30T16:54:47.757 回答