Le comptage des doublons dans les Pandas DataFrame
Il doit y avoir un moyen facile de le faire, mais j'ai été incapable de trouver une solution élégante pour sur DONC ou à travailler par moi-même.
Je suis en train de compter le nombre de valeurs en double en fonction d'un ensemble de colonnes dans un DataFrame.
Exemple:
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
Ma solution:
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
Et je reçois le compte:
{(-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}
Hormis le fait que ce code pourrait être améliorée (n'hésitez pas à commenter comment), ce qui serait le moyen de le faire à travers les Pandas?
Pour ceux qui sont intéressés, je suis en train de travailler sur un jeu de données à partir de https://data.police.uk/
OriginalL'auteur tales | 2015-11-30
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
groupby
avec la fonction taille.Puis-je réinitialiser indice de renommer la colonne
0
àcount
.OriginalL'auteur jezrael
Un O(n) solution est possible via
collections.Counter
:Résultat:
OriginalL'auteur jpp
Vous pouvez regrouper sur la Longitude et la Latitude, et ensuite utiliser
value_counts
sur leCrime type
colonne.OriginalL'auteur Alexander