Группа по счету в пандах - PullRequest
       0

Группа по счету в пандах

0 голосов
/ 14 февраля 2019

Вот мои данные:

{'SystemID': {0: '95EE8B57',
 1: '5F891F03',
 2: '5F891F03',
 3: '5F891F03'},
 'Day': {0: '06/08/2018', 1: '05/08/2018', 2: '04/08/2018',   3: '05/08/2018'},
 'AlarmClass-S': {0: 4, 1: 2, 2: 4, 3: 0},
 'AlarmClass-ELM': {0: 0, 1: 0, 2: 0, 3: 2}}

Я хотел бы выполнить агрегацию и фильтрацию, которые в SQL были бы сформулированы как

SELECT SystemID, COUNT(*) as count FROM table GROUP BY SystemID HAVING COUNT(*) > 2

Таким образом, результат будет

    {'SystemID': {0: '5F891F03'},
 'count': {0: '3'}}

Как это сделать в пандах?

1 Ответ

0 голосов
/ 14 февраля 2019

Вы можете использовать groupby и count, затем выполнить фильтрацию в конце.

(df.groupby('SystemID', as_index=False)['SystemID']
   .agg({'count': 'count'})
   .query('count > 2'))

   SystemID  count
0  5F891F03      3

(df.groupby('SystemID', as_index=False)['SystemID']
   .agg({'count': 'count'})
   .query('count > 2')
   .to_dict())
# {'SystemID': {0: '5F891F03'}, 'count': {0: 3}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...