J'ai un ensemble de données comme
id
1
2
3
4
7
8
Je veux que mon résultat soit le suivant :
id count
1 4
2 4
3 4
4 4
7 2
8 2
Merci d'avance
J'ai un ensemble de données comme
id
1
2
3
4
7
8
Je veux que mon résultat soit le suivant :
id count
1 4
2 4
3 4
4 4
7 2
8 2
Merci d'avance
Créer Series
pour des entiers consécutifs par Series.diff
, comparer pour ne pas égaler 1
por Series.ne
et ajouter la somme cumulée par Series.cumsum
:
s = df['id'].diff().ne(1).cumsum()
Ensuite, utilisez Series.map
con Series.value_counts
:
df['count'] = s.map(s.value_counts())
Ou GroupBy.transform
con GroupBy.size
:
df['count'] = s.groupby(s).transform('size')
print (df)
id count
0 1 4
1 2 4
2 3 4
3 4 4
4 7 2
5 8 2
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.