подсчет значений от json до pandas с сохранением сортировки по дате и времени

#python #json #pandas #dataframe

Вопрос:

     {"id": 814984317021495298, "date": "2016-12-30", "time": "18:59:37", "timezone": 
    "-0400", "replies_count": 7708, "username": "im_theantitrump"}
    {"id": 814984316195311616, "date": "2016-12-30", "time": "18:59:37", "timezone": 
    "-0400", "replies_count": 25772, "username": "bishyoucray2"}
 

Файл Json выглядит так. При выполнении следующих команд:

     df = pd.read_json('filename.json', lines=True)
    df['date'].value_counts() 
 

результат выглядит так:

     ,date
    2016-11-17,3403
    2016-11-04,2605
    2016-12-09,2285
    2016-11-24,1934
    2016-12-19,1874
    2016-12-07,1864
    2016-11-28,1825
    2016-11-29,1715
    2016-11-27,1688
    2016-12-15,1683
    2016-12-06,1680
 

Есть ли какая-либо альтернатива, которая бы сортировала дату и время в порядке возрастания (по умолчанию в файле json они возрастают). И, возможно, добавьте «count» в качестве второго заголовка фрейма данных, чтобы он соответствовал столбцам?
Вот пример.

     date    count
    10/31/2016  97
    11/1/2016   3360
    11/2/2016   5719
    11/3/2016   1206
    11/4/2016   3888
    11/5/2016   1176
    11/6/2016   1598
    11/7/2016   4542
    11/8/2016   1750
    11/9/2016   1224
    11/10/2016  1489
    11/11/2016  3138
    11/12/2016  1449
    11/13/2016  1299
    11/14/2016  1136
    11/15/2016  1525
 

Комментарии:

1. разве ты не можешь просто перейти , sort=False к value_counts() ?

2. это испортило сортировку за месяц после смешивания предыдущего дня

Ответ №1:

Чтобы сохранить вывод .value_counts в отсортированном порядке, вы можете сделать:

 out = df["date"].value_counts().to_frame(name="count")
out = out.sort_index()
out.to_csv("data.csv", index_label="date")
 

Экономит data.csv :

 date,count
2016-11-30,2
2016-12-30,2
 

Используемые данные Json:

 {"id": 814984317021495298, "date": "2016-12-30", "time": "18:59:37", "timezone": "-0400", "replies_count": 7708, "username": "im_theantitrump"}
{"id": 814984316195311616, "date": "2016-12-30", "time": "18:59:37", "timezone": "-0400", "replies_count": 25772, "username": "bishyoucray2"}
{"id": 814984316195311616, "date": "2016-11-30", "time": "18:59:37", "timezone": "-0400", "replies_count": 25772, "username": "bishyoucray2"}
{"id": 814984316195311616, "date": "2016-11-30", "time": "18:59:37", "timezone": "-0400", "replies_count": 25772, "username": "bishyoucray2"}
 

Комментарии:

1. «дата» теперь не отображается в заголовке. «,количество» теперь является единственным заголовком. Но сортировка работает. Спасибо вам:)