Demir python kullanarak .NET alanında bir panda DataFrame yükleyebilir miyiz? Değilse pandas df'yi bir csv dosyasına dönüştürmeyi ve sonra da .net alanını okumayı düşünüyorum..NET ironpython'da pandalar DataFrame'i yükleyebilir miyiz?
cevap
Hayır, Pandalar, CPython'a oldukça iyi bağlanmış. Söylediğin gibi, en iyi bahse girme, CPython'daki analizi Panda'larla yapmak ve sonucu CSV'ye vermek.
Python.NET kullanarak .NET CPython çağırmak mümkündür: serileştirme dahil seçeneği İlişkin
: Hala benzer soruşturuyor ediyorum
- işleyebileceğimiz istiyoruz python'daki verileri ve daha sonra sonuçları C# olarak kullanın. İhtiyacımız, python parça platformunu bağımsız olarak tutmaktı, böylece numaramızı ya linux ya da pencereler üzerinde çalıştırabilirdik. Uzun lafın kısası biz ileti paketi ile ikili seri/deserialization kullanmaya karar: http://msgpack.org/index.html
Biz listelemek için DataFrame değerlerini dönüştürmek ve dosyaya serialize:
import msgpack as mp
data_as_list = df.values.tolist()
mp.pack(data_as_list, open("d:\\msgpack1.mp",'wb'))
Sonra kullanmak C# tarafında. ikili serileştirme
using MsgPack;
var serializer =
SerializationContext.Default.GetSerializer<MessagePackObject[][]>();
var unpackedObject = serializer.Unpack(File.OpenRead("d:\\msgpack1.mp"));
Ana avantajları:
MessagePack net uygulama veri serisini- 0 (bizim durumumuzda olduğu) o CSV daha hızlı olabilir verilere bağlı olarak CSV, json veya xml
- gibi bazlı seri biçimleri metne karşılaştıran herhangi bir kodlama ile ilgili konularda daha az eğilimli: http://matthewrocklin.com/blog/work/2015/03/16/Fast-Serialization/
Pandalar, şu ana kadar bilgim için IronPython'a oldukça sağlam bir bağlantı noktası olan numpy'e güveniyor. Ama aynı zamanda yüksek performans elde etmek için Cython ve C'ye bağlı, değil mi? İkincisi, büyük sorun değil, uyuşuk değil. –