10

Iron pythonを使用して.NET空間にpandas DataFrameをロードできますか? そうでない場合は、パンダ df を csv ファイルに変換してから、.net スペースで読み取ることを考えています。

4

3 に答える 3

10

いいえ、Pandas は CPython とかなり密接に結びついています。あなたが言ったように、あなたの最善の策は、Pandas を使用して CPython で分析を行い、結果を CSV にエクスポートすることです。

于 2013-01-21T16:34:02.520 に答える
3

連載を含むオプションについて:

私はまだ同様のケースを調査しています.pythonでデータを処理し、結果をc#で使用したいと考えています。私たちの要件は、(できれば) python 部分をプラットフォームに依存しないようにして、Linux または Windows のいずれかで数値計算を実行できるようにすることでした。簡単に言うと、Message Pack でバイナリのシリアライゼーション/デシリアライゼーションを使用することにしました: 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 を呼び出すことができます。

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

于 2014-12-30T16:54:47.757 に答える