Chúng ta có thể nạp một khung DataFrame trong không gian .NET bằng cách sử dụng python sắt không? Nếu không, tôi đang nghĩ đến việc chuyển đổi gấu trúc df thành một tệp csv và sau đó đọc trong không gian .net.Chúng tôi có thể tải gấu trúc DataFrame trong .NET ironthon không?
Trả lời
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.
Có thể gọi CPython từ NET sử dụng Python.NET:
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/
- 1. Nội suy trên DataFrame trong gấu trúc
- 2. Cập nhật gấu trúc DataFrame được lưu trữ trong Pytable với gấu trúc khác DataFrame
- 3. Hiểu gấu trúc dataframe indexing
- 4. XML để gấu trúc dataframe
- 5. Xuất bảng LaTeX từ gấu trúc DataFrame
- 6. gấu trúc: chuẩn hóa một DataFrame
- 7. Cập nhật gấu trúc DataFrame theo khóa
- 8. Drop cột không phải số từ một DataFrame gấu trúc
- 9. lập chỉ mục một gấu trúc DataFrame
- 10. Nhập gấu trúc cột dataframe dưới dạng chuỗi không int
- 11. ReshapeError trong khi cố gắng xoay gấu trúc dataframe
- 12. Kết hợp hai Series vào một DataFrame trong gấu trúc
- 13. gấu trúc: kết hợp hai cột trong một DataFrame
- 14. index Invert và cột trong một DataFrame gấu trúc
- 15. Nhận nhóm id trở thành gấu trúc dataframe
- 16. gấu trúc lựa chọn tuyệt vời Dataframe sử dụng startswith
- 17. gấu trúc: áp dụng hàm cho DataFrame có thể trả về nhiều hàng
- 18. Tạo một chú gấu trúc DataFrame từ nhiều dicts
- 19. lọc một Dataframe gấu trúc dựa trên ngày giá trị
- 20. Mở rộng hiệu quả các dòng từ gấu trúc DataFrame
- 21. concat gấu trúc DataFrame cùng chỉ số chuỗi thời gian
- 22. Chuyển đổi Django QuerySet để gấu trúc DataFrame
- 23. xóa các hàng cụ thể khỏi DataFrame trong các chú gấu trúc trăn
- 24. kiểm tra nếu chuỗi trong cột dataframe gấu trúc có trong danh sách
- 25. Lỗi gấu trúc: đối tượng 'DataFrame' không có thuộc tính 'loc'
- 26. Resample trong ngày gấu trúc DataFrame mà không cần thêm ngày mới
- 27. hàng gấu trúc cụ thể áp dụng
- 28. Trích xuất tất cả các hàng từ gấu trúc Dataframe có giá trị nhất định trong một cột cụ thể
- 29. Nối hàng vào DataFrame gấu trúc mà không làm một bản sao mới
- 30. Áp dụng nhanh các hoạt động chuỗi trong gấu trúc DataFrame
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ả. –