В pandas можно воспользоваться методом `rank()` для создания ранжирования, аналогичного `row_number()` в SQL, но для точного аналога — присвоения уникального порядкового номера каждой строке, можно использовать метод `cumcount()` в сочетании с `groupby()` (если нужно номеровать строки внутри каких-то групп) или просто использовать индексацию.
Предположим, у вас есть DataFrame `df`. Чтобы присвоить каждой строке уникальный порядковый номер, вы можете просто добавить новый столбец с индексом:
```python
import pandas as pd
# Создаем пример DataFrame
df = pd.DataFrame({
'Group': ['A', 'A', 'B', 'B', 'C', 'C', 'C'],
'Value': [1, 2, 3, 4, 5, 6, 7]
})
# Добавляем столбец с порядковыми номерами
df['RowNumber'] = range(1, len(df)+1)
```
Если вам нужно ранжировать строки внутри каждой группы (например, в столбце 'Group'), вы можете сделать следующее:
```python
df['RowNumber'] = df.groupby('Group').cumcount() + 1
```
Здесь `cumcount` создаст последовательность чисел для каждой группы, начинающуюся с 0; добавив 1, мы сделаем так, что нумерация начнется с 1.
В случае если потребуется выполнить ранжирование с учетом сортировки по другим критериям (аналогично `ORDER BY` в SQL), можно сначала отсортировать DataFrame так, как это необходимо, а затем применить метод `cumcount`:
```python
# Сортируем DataFrame
df.sort_values(by=['Group', 'Value'], inplace=True)
# Применяем cumcount + 1 для группировки и сортировки
df['RowNumber'] = df.groupby('Group').cumcount() + 1
```
Вот таким образом, используя pandas, можно имитировать поведение оконной функции `row_number()` из SQL.