Привет. Я пытаюсь посчитать различные значения пары между портами и адресами.
По сути, это точный сценарий, в котором я хочу, чтобы значение rolloing_count было равно числу значений PORT и ADDRESS, когда строка входит в окно.
Подсчет различных строк в скользящем окне с помощьюpandas + python (с условием)
Однако ответ на вопрос неправильный, и не было никаких последующих действий по его решению.
Допустим, у меня есть таблица
ID PORT ADDRESS
1 21 ad3
2 22 ad1
3 23 ad2
4 23 ad2
5 21 ad4
6 22 ad1
7 22 ad1
8 21 ad4
, например, если бы у меня был размер окна 3, мой желаемый результат был бы
ID PORT ADDRESS rolling_count
1 21 ad3 1
2 22 ad1 1
3 23 ad2 1
4 23 ad2 2
5 21 ad4 1
6 22 ad1 1
7 22 ad1 2
8 21 ad4 1
Ответ на связанный постКажется, я считаю только в пределах окна
df['rolling_count']=df.groupby('ADDRESS').PORT.apply(lambda x : pd.Series(x).rolling(3,min_periods=1).apply(lambda y: len(set(y))))
- это то, что я пытался использовать, и это не правильно.Это то, что он выводит
ID PORT ADDRESS rolling_count
1 21 ad3 1
2 22 ad1 1
3 23 ad2 1
4 23 ad2 1
5 21 ad4 1
6 22 ad1 1
7 22 ad1 1
8 21 ad4 1
Любая обратная связь будет полезна.