Подсчет повторяющихся значений в Pandas DataFrame

Должен быть простой способ сделать это, но я не смог найти элегантного решения для SO или решить его самостоятельно.

Я пытаюсь подсчитать количество повторяющихся значений на основе набора столбцов в DataFrame.

Пример:

print df

    Month   LSOA code   Longitude   Latitude    Crime type
0   2015-01 E01000916   -0.106453   51.518207   Bicycle theft
1   2015-01 E01000914   -0.111497   51.518226   Burglary
2   2015-01 E01000914   -0.111497   51.518226   Burglary
3   2015-01 E01000914   -0.111497   51.518226   Other theft
4   2015-01 E01000914   -0.113767   51.517372   Theft from the person

Мой обходной путь:

counts = dict()
for i, row in df.iterrows():
    key = (
            row['Longitude'],
            row['Latitude'],
            row['Crime type']
        )

    if counts.has_key(key):
        counts[key] = counts[key] + 1
    else:
        counts[key] = 1

И я получаю счет:

{(-0.11376700000000001, 51.517371999999995, 'Theft from the person'): 1,
 (-0.111497, 51.518226, 'Burglary'): 2,
 (-0.111497, 51.518226, 'Other theft'): 1,
 (-0.10645299999999999, 51.518207000000004, 'Bicycle theft'): 1}

Помимо того, что этот код также может быть улучшен (не стесняйтесь комментировать, как), каким будет способ сделать это через Pandas?

Для тех, кто заинтересован, я работаю над набором данных изhttps://data.police.uk/

Ответы на вопрос(3)

Ваш ответ на вопрос