Как преобразовать Pandas Dataframe в JSON и показать его в Datatables? - PullRequest
0 голосов
/ 08 февраля 2019

Я ищу эффективный способ сделать ниже.У меня есть пандас 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 столбцов для отображения, так что это тоже должно быть довольно быстро!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...