DataFrame.sort_values ​​смотрит только на первое di git, а не на все число - PullRequest
0 голосов
/ 01 августа 2020

У меня есть DataFrame, который выглядит так:

    del Ticker  Open Interest
0   1   SPY     20,996,893
1   3   IWM     7,391,074
2   5   EEM     6,545,445
...
47  46  MU      1,268,256
48  48  NOK     1,222,759
49  50  ET      1,141,467

Я хочу go в порядке от наименьшего числа к наибольшему с df['del'], но когда я пишу df.sort_values('del'), я получаю

    del Ticker
0   1   SPY
29  10  BAC
5   11  GE

Похоже, делать это на основе первого числа, а не go по порядку? Я использую правильный код или мне нужно полностью его изменить?

1 Ответ

0 голосов
/ 02 августа 2020

Предполагая, что у вас есть числа в качестве строки типа, вы можете:

добавить ведущие нули к номерам строк, что позволит упорядочить строку

df["del"] = df["del"].map(lambda x: x.zfill(10))
df = df.sort_values('del')

или преобразовать тип в целое число

df["del"] = df["del"].astype('int') # as recommended by Alex.Kh in comment
#df["del"] = df["del"].map(int) # my initial answer
df = df.sort_values('del')

Я также заметил, что del, похоже, сортируется так же, как и ваш индекс, поэтому вы даже можете сделать:

df = df.sort_index(ascending=False)

до go от самого низкого до самого высокого вы можете явно .sort_values('del', ascending=True)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...