Я ищу эффективный способ сделать ниже.У меня есть пандас Dataframe, подобный этому:
----------------------------------------------
|Portfolio | Stock | LivePnL | YTD_Live_Pnl|
---------------------------------------------
| Port_1 | AAPL US | 1000 | 5000 |
----------------------------------------------
| Port_1 | IBM US | 500 | 9000 |
---------------------------------------------
| Port_1 | MSFT US | -500 | -1000 |
---------------------------------------------
| Port_2 | AAPL US | 3000 | 20000 |
----------------------------------------------
| Port_3 | IBM US | 100 | -500 |
----------------------------------------------
По сути, запас может быть частью нескольких портфелей, и разные количества генерируют разные PnL.В моем контроллере я экспортирую это как JSON df.to_json(orient='records')
, который на внешнем интерфейсе получает массив объектов, таких как:
[{'Portfolio':'Port_1', 'Stock':'AAPL US', 'LivePnL':1000,'YTD':5000},
{'Portfolio':'Port_1', 'Stock':'IBM US', 'LivePnL':500,'YTD':9000},
{'Portfolio':'Port_1', 'Stock':'MSFT US', 'LivePnL':-500,'YTD':-1000},
{'Portfolio':'Port_2', 'Stock':'AAPL US', 'LivePnL':3000,'YTD':20000},
{'Portfolio':'Port_3', 'Stock':'IBM US', 'LivePnL':100,'YTD':-500}
]
В моем Jquery я создаю таблицу из этого ответа JSON,
var realtime_pnl_table = $('#realtime_pnl_table').DataTable({
"processing": true,
"searching":true,
"ajax":{
"url":"live_pnl",
"type":"POST",
dataSrc: function (json) {
var obj = JSON.parse(json["data"]);
return obj;
}
},
"columns":[
{"data" :"Portfolio"},
{"data" :"Stock"},
{"data" :"LivePnL"},
{"data" :"YTD_Live_Pnl"},
],
});
И это дает мне такую таблицу, как DataFrame на внешнем интерфейсе.Тем не менее, я хотел бы видеть что-то вроде этого:
------------------------------------------------------------------------------------------------------------------
| Stock | Port_1 (LivePnL) | Port_2 (LivePnL) | Port_3(LivePnL)| Port_1(YTD)| Port_2(YTD) | Port_3 (YTD)
-------------------------------------------------------------------------------------------------------------------
| AAPL US | 5000 | 3000 |NA |5000 | 20000 | NA
-------------------------------------------------------------------------------------------------------------------
И так далее для других строк.Каков был бы правильный и эффективный способ достичь этого?Очевидно, у меня есть 1000 строк и около 10 столбцов для отображения, так что это тоже должно быть довольно быстро!