Найти порядок наблюдений [дубликат]

Объекты в Javascript могут существовать сами по себе, не нуждаясь в имени. Например:

{}

- новый экземпляр словарного объекта.

a = {};

создает новый объект словаря и ссылается на a. Теперь

b = a;

делает b ссылкой на один и тот же базовый объект. Затем вы можете сделать точку a в другом месте:

a = "hi";

и b все еще указывает на тот же словарь, что и раньше. Поведение b не связано с тем, как вы изменяете то, что указывает a.

13
задан jpp 18 March 2018 в 18:19
поделиться

2 ответа

используйте cumcount(), см. docs здесь

In [4]: df.groupby(['c1', 'c2']).cumcount()
Out[4]: 
0     0
1     1
2     0
3     1
4     0
5     1
6     2
7     0
8     0
9     0
10    1
11    2
dtype: int64

Если вы хотите, чтобы порядок, начинающийся с 1

In [5]: df.groupby(['c1', 'c2']).cumcount()+1
Out[5]: 
0     1
1     2
2     1
3     2
4     1
5     2
6     3
7     1
8     1
9     1
10    2
11    3
dtype: int64
23
ответ дан Jeff 17 August 2018 в 09:09
поделиться

Полный рабочий код

import pandas as pd
df = pd.DataFrame(
    [['A', 'X', 3], ['A', 'X', 5], ['A', 'Y', 7], ['A', 'Y', 1],
     ['B', 'X', 3], ['B', 'X', 1], ['B', 'X', 3], ['B', 'Y', 1],
     ['C', 'X', 7], ['C', 'Y', 4], ['C', 'Y', 1], ['C', 'Y', 6]],
    columns=['c1', 'c2', 'v1'])

df['seq'] = df.groupby(['c1', 'c2']).cumcount() + 1
print(df)

Выход

   c1 c2  v1  seq
0   A  X   3    1
1   A  X   5    2
2   A  Y   7    1
3   A  Y   1    2
4   B  X   3    1
5   B  X   1    2
6   B  X   3    3
7   B  Y   1    1
8   C  X   7    1
9   C  Y   4    1
10  C  Y   1    2
11  C  Y   6    3
0
ответ дан Md Johirul Islam 17 August 2018 в 09:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: