Группировка датафрейма по части строки и подсчет номеров элементов внутри группы
По первым двум цифрам числа нужно сгруппировать колонку и посчитать номера элементов внутри группы
Датафрейм:
01256
01369
01458
01358
24785
24789
24365
24157
27894
27444
Нужно получить ->
01256 1
01369 2
01458 3
01358 4
24785 1
24789 2
24365 3
24157 4
27894 1
27444 2
как сделать?
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Ну буквально так и делаете:
- выделяете первые две цифры
- делаете по ним группировку
- используете
cumcountдля подсчёта номера внутри группы
import pandas as pd
df = pd.DataFrame(
"""01256
01369
01458
01358
24785
24789
24365
24157
27894
27444""".split('\n'),
columns=['num']
)
df['ord'] = df.groupby(df['num'].str.slice(0,2)).cumcount() + 1
df
На выходе:
num ord
0 01256 1
1 01369 2
2 01458 3
3 01358 4
4 24785 1
5 24789 2
6 24365 3
7 24157 4
8 27894 1
9 27444 2