Как в таблицу добавить нумерацию строк

import pandas as pd
from prettytable import PrettyTable
x = PrettyTable()
df = pd.DataFrame(data=[["Vancouver", 2, 17, 5, 12, 4 ],
                  ["Rangers", 2, 10, 5, 5, 4],
                  ["Tampa", 2, 16, 8, 8, 4],
                  ["Colorado", 2, 13, 12, 1, 2],
                  ["Philadelphia", 2, 7, 13, -6, 2],
                  ["Vegas", 2, 8, 14, -6, 0],
                  ["Boston", 2, 10, 13, -3, 1],
                  ["Devils", 2, 9, 11, -2, 2],
                  ["Calgary", 2, 8, 9, -1, 2],
                  ["Florida", 2, 6, 14, -8, 0]],
columns=["Teams" , "Games" , "GoalIn" , "GoalOut" , "GoalDiff", "Points"],)
df = df.sort_values (by = ["Points", "GoalDiff", "Teams"], ascending = [ False , False, True ]).set_index("Teams")
x.border = True
x.header = True
x.padding_width = 1
df.sort_values(by=["Points", "GoalDiff", "GoalIn", "Teams"],ascending= [False, False, False, True])

print(df)
### Результат:
   Games  GoalIn  GoalOut  GoalDiff  Points
Teams                                                 
Vancouver         2      17        5        12       4
Tampa             2      16        8         8       4
Rangers           2      10        5         5       4
Colorado          2      13       12         1       2
Calgary           2       8        9        -1       2
Devils            2       9       11        -2       2
Philadelphia      2       7       13        -6       2
Boston            2      10       13        -3       1
Vegas             2       8       14        -6       0
Florida           2       6       14        -8       0
 ##

#Нужно сделать нумерацию строк, пока не получилось((


Ответы (2 шт):

Автор решения: Алексей Р

Cоздание индекса в строке df = df.sort_values (by = ["Points", "GoalDiff", "Teams"], ascending = [ False , False, True ]).set_index("Teams") не нужно, т.к. вы им в этом коде не пользуетесь, и потом его приходится все равно сбрасывать, чтобы установить индекс с порядковой нумерацией. Поэтому можно обойтись аргументом ignore_index=True при сортировке, что автоматически создаст индекс 0 .. n, который при необходимости можно инкрементировать.
Строчка df.sort_values(by=["Points", "GoalDiff", "GoalIn", "Teams"],ascending= [False, False, False, True]) лишняя, она не оказывает на результат никакого действия, поскольку он не присваивается переменной.

df = df.sort_values(by=["Points", "GoalDiff", "Teams"], ascending=[False, False, True], ignore_index=True)
df.index += 1
print(df)
           Teams  Games  GoalIn  GoalOut  GoalDiff  Points
1      Vancouver      2      17        5        12       4
2          Tampa      2      16        8         8       4
3        Rangers      2      10        5         5       4
4       Colorado      2      13       12         1       2
5        Calgary      2       8        9        -1       2
6         Devils      2       9       11        -2       2
7   Philadelphia      2       7       13        -6       2
8         Boston      2      10       13        -3       1
9          Vegas      2       8       14        -6       0
10       Florida      2       6       14        -8       0
→ Ссылка
Автор решения: MarianD

Добавите на конец вашей команды

df = df.sort_values (by = ["Points", "GoalDiff", "Teams"], ascending = [ False , False, True ]).set_index("Teams").reset_index()

метод .reset_index(), т.е. чтобы она выглядела так:

df = df.sort_values(by=["Points", "GoalDiff", "Teams"], 
                    ascending=[False, False, True]).set_index("Teams").reset_index()

и вы получите

          Teams  Games  GoalIn  GoalOut  GoalDiff  Points
0     Vancouver      2      17        5        12       4
1         Tampa      2      16        8         8       4
2       Rangers      2      10        5         5       4
3      Colorado      2      13       12         1       2
4       Calgary      2       8        9        -1       2
5        Devils      2       9       11        -2       2
6  Philadelphia      2       7       13        -6       2
7        Boston      2      10       13        -3       1
8         Vegas      2       8       14        -6       0
9       Florida      2       6       14        -8       0

Примечание:

Когда бы вы хотели нумеровать от 1, добавите после этой команды еще df.index += 1:

df = df.sort_values(by=["Points", "GoalDiff", "Teams"], 
                    ascending=[False, False, True]).set_index("Teams").reset_index()
df.index += 1
           Teams  Games  GoalIn  GoalOut  GoalDiff  Points
1      Vancouver      2      17        5        12       4
2          Tampa      2      16        8         8       4
3        Rangers      2      10        5         5       4
4       Colorado      2      13       12         1       2
5        Calgary      2       8        9        -1       2
6         Devils      2       9       11        -2       2
7   Philadelphia      2       7       13        -6       2
8         Boston      2      10       13        -3       1
9          Vegas      2       8       14        -6       0
10       Florida      2       6       14        -8       0
→ Ссылка