2013-01-21 29 views

Trả lời

8

Không, Pandas được liên kết khá tốt với CPython. Như bạn đã nói, đặt cược tốt nhất của bạn là thực hiện phân tích trong CPython với Pandas và xuất kết quả sang CSV.

+1

Pandas dựa vào sự numpy, mà theo hiểu biết của tôi có một cổng khá vững chắc với IronPython bây giờ. Nhưng nó cũng phụ thuộc vào Cython và C để đạt được hiệu suất cao, phải không? Thứ hai có lẽ là vấn đề lớn, không phải là vất vả. –

1

Về tùy chọn bao gồm serialization:

tôi vẫn đang điều tra trường hợp tương tự - chúng tôi muốn để xử lý dữ liệu trong python và sau đó sử dụng kết quả trong C#. Yêu cầu của chúng tôi là (tốt nhất) giữ cho nền tảng phần python độc lập để chúng tôi có thể chạy số crunching của chúng tôi trên cả linux hoặc windows. câu chuyện dài ngắn, chúng tôi quyết định sử dụng hệ nhị phân serialization/deserialization với tin nhắn Gói: http://msgpack.org/index.html

Chúng tôi chuyển đổi các giá trị DataFrame vào danh sách, và serialize sang file:

import msgpack as mp 
data_as_list = df.values.tolist() 
mp.pack(data_as_list, open("d:\\msgpack1.mp",'wb')) 

Sau đó trên C# bên chúng ta sử dụng. thực hiện ròng MessagePack để deserialize dữ liệu:

using MsgPack; 
var serializer = 
    SerializationContext.Default.GetSerializer<MessagePackObject[][]>(); 
var unpackedObject = serializer.Unpack(File.OpenRead("d:\\msgpack1.mp")); 

lợi thế chính của serialization nhị phân:

  • là ít bị bất kỳ vấn đề mã hóa liên quan so với văn bản định dạng serialization dựa như csv, json hoặc xml
  • tùy thuộc vào dữ liệu mà nó có thể nhanh hơn so với định dạng CSV (đó là trong trường hợp của chúng tôi): http://matthewrocklin.com/blog/work/2015/03/16/Fast-Serialization/
Các vấn đề liên quan