преобразование серии панда в массив объектов, как в JavaScript - PullRequest
0 голосов
/ 31 октября 2018

Я новичок в питоне. У меня есть серия панды, как показано ниже,

                        count
timestamp                    
1980-10-05 01:12:00   56.4691
1980-10-05 01:13:00   54.9415
1980-10-05 01:14:00   52.0359
1980-10-05 01:15:00   47.7313
1980-10-05 01:16:00   50.5876
1980-10-05 01:17:00   48.2846
1980-10-05 01:18:00   44.6438
1980-10-05 01:19:00   42.3077
1980-10-05 01:20:00   38.8363
1980-10-05 01:21:00   41.0145
1980-10-05 01:22:00   39.5523
1980-10-05 01:23:00   38.9117
1980-10-05 01:24:00   37.3052
1980-10-05 01:25:00   36.1725
1980-10-05 01:26:00   37.5150
1980-10-05 01:27:00   38.1387
1980-10-05 01:28:00   39.5351
1980-10-05 01:29:00   38.1834
1980-10-05 01:30:00   37.5988
1980-10-05 01:31:00   43.6522
1980-10-05 01:32:00   47.9571
1980-10-05 13:08:00  210.0000
1980-10-05 13:18:00   40.0000
1980-10-05 13:28:00  250.0000
1980-10-05 13:38:00   40.0000

Я хочу преобразовать это в массив объектов как;

[
    {timestamp: 1980-10-05 13:38:00, count: 40.0000},
    {timestamp: 1980-10-05 13:38:00, count: 40.0000},
    {timestamp: 1980-10-05 13:38:00, count: 40.0000},
    {timestamp: 1980-10-05 13:38:00, count: 40.0000}
]

Можно ли сделать это на питоне?

Ответы [ 3 ]

0 голосов
/ 31 октября 2018

Вам нужно reset_index с to_json с параметром orient='records' как:

df.reset_index().to_json(orient='records')
0 голосов
/ 31 октября 2018

Вы можете использовать df.to_dict с ключевым словом orient='records'.

Исходный кадр данных:

>>> df.head()
>>> 
                       count
timestamp                   
1980-10-05 01:12:00  56.4691
1980-10-05 01:13:00  54.9415
1980-10-05 01:14:00  52.0359
1980-10-05 01:15:00  47.7313
1980-10-05 01:16:00  50.5876

Сделать 'timestamp' столбец:

>>> df = df.reset_index()
>>> df.head()
>>> 
            timestamp    count
0 1980-10-05 01:12:00  56.4691
1 1980-10-05 01:13:00  54.9415
2 1980-10-05 01:14:00  52.0359
3 1980-10-05 01:15:00  47.7313
4 1980-10-05 01:16:00  50.5876

Используйте df.to_dict, чтобы получить окончательный результат:

>>> result = df.to_dict(orient='records')
>>> result[:5]
>>> 
[{'count': 56.4691, 'timestamp': Timestamp('1980-10-05 01:12:00')},
 {'count': 54.9415, 'timestamp': Timestamp('1980-10-05 01:13:00')},
 {'count': 52.0359, 'timestamp': Timestamp('1980-10-05 01:14:00')},
 {'count': 47.7313, 'timestamp': Timestamp('1980-10-05 01:15:00')},
 {'count': 50.5876, 'timestamp': Timestamp('1980-10-05 01:16:00')}] 

edit: Мне неясно, как именно вы хотите, чтобы метки времени были представлены в конечном результате. Возможно, вам придется использовать to_json над to_dict, как показано в ответ Сандипа Кадапы .

0 голосов
/ 31 октября 2018

Попробуй так:

arr_obj = df.to_dict(orient='records')
...