Базы данных с помощью JSON в качестве [закрытого] формата устройства хранения данных/транспорта

Предполагая, что ваш фрейм данных выглядит так ( я добавил 2 дополнительные строки внизу, так как в вашем примере не было ничего, чтобы воспроизвести остальную часть кода ):

    Terminal_ID TSG                 Date       Terminal_no  Vol
0   t_tel_003   CashCheck           2018-01-10  3           61
1   t_tel_003   CashCheck           2018-01-10  3           3
2   t_tel_003   CommercialDeposit   2018-01-10  3           12
3   t_tel_003   CommercialDeposit   2018-01-10  3           10
4   t_tel_003   CommercialDeposit   2018-01-10  3           122
5   t_tel_003   CommercialDeposit   2018-01-10  3           1
6   t_tel_004   CommercialDeposit   2018-01-10  3           1
7   t_tel_003   CommercialDeposit   2018-01-10  4           1

Когда вы видим, что последние 2 строки совершенно разные и не имеют соответствия, учитывая все 4 столбца (следовательно, выходные данные должны иметь эти 2 строки такими, какие они есть):

Используя ниже:

df_dup = df.groupby([df.index//2,'Terminal_ID','TSG','Date','Terminal_no'])[df.columns].apply(lambda x : x[x[x.columns[:-1]].duplicated(keep=False)]['Vol'].sum()).reset_index().rename(columns={0:'Vol'}).drop('level_0',axis=1).replace(0,np.nan).dropna()
df_uniq =df[~df[df.columns[:-1]].duplicated(keep=False)]

pd.concat([df_dup,df_uniq],ignore_index=True)
[1112 ] Вывести

    Terminal_ID TSG                 Date       Terminal_no  Vol
0   t_tel_003   CashCheck           2018-01-10  3           64.0
1   t_tel_003   CommercialDeposit   2018-01-10  3           22.0
2   t_tel_003   CommercialDeposit   2018-01-10  3           123.0
3   t_tel_004   CommercialDeposit   2018-01-10  3           1.0
4   t_tel_003   CommercialDeposit   2018-01-10  4           1.0

Объяснение df_dup Группировать каждые 2 строки, используя df.index//2 в группе, затем применять функцию к каждой группе, которая проверяет, является ли каждая группа (в данном случае 2 строки, исключая последний столбец Vol) одинаковой, а затем вносит сумму в столбец Vol.

df_uniq : отфильтровать полностью уникальные значения. Наконец, объедините оба, чтобы получить желаемый результат.

1115 Надеюсь, это поможет. Дайте мне знать, если нет.

27
задан Community 22 September 2017 в 17:57
поделиться

3 ответа

MongoDb - это тот, который использует двоичный формат хранения JSON. Я не знаю, есть ли другой, ориентированный на документы. Большинство других являются хранилищами значений ключей и могут извлекать объект только на основе одного ключа.

12
ответ дан 28 November 2019 в 05:16
поделиться

Взгляните на Риак Башо. Он имеет несколько общих черт с CouchDB: на основе Erlang, Javascript MapReduce API, HTTP-транспорт, формат документов JSON и репликация с несколькими хозяевами. Он не стремится быть таким простым, как CouchDB (CouchDB более «самоуверенный»), но он дает вам множество возможностей для настройки параметров CAP в соответствии с потребностями вашего приложения для каждой записи.

2
ответ дан Syd 28 November 2019 в 05:16
поделиться

Persevere - еще одна БД, загружаемая с помощью JSON:

http://www.persvr.org/

Первичный транспорт - это JSON HTTP / REST

Данные хранятся как JSON

Он имеет собственный клиент JS / JSON для запуска непосредственно из браузера.

Если вам нужна схема, она определяется с помощью JSON

14
ответ дан 28 November 2019 в 05:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: