Функция sort_values ​​в кадре данных панд не работает должным образом - PullRequest
0 голосов
/ 20 июня 2019

У меня есть набор данных из 1281695 строк и 4 столбцов, в которых у меня есть данные за 6 лет с 2013 по 2019 год. Итак, очевидно, что в наборе данных есть повторяющиеся даты.Я хочу упорядочить данные как даты в порядке возрастания, например, январь 2013 г., февраль 2013 г., ... декабрь 2013 г., январь 2014 г., ...... декабрь 2019 г. (данные за 6 лет). Я хочу получить порядок возрастания для всехнабор данных, но он показывает восходящий порядок для некоторых данных и случайный порядок для остальных данных.

Я пробовал sort_values ​​библиотеки pandas.

Я пробовал что-то вроде этого:

data = df.sort_values(['SKU', 'Region', 'FMonth'], axis=0, ascending=[False, True, True]).reset_index()

где SKU, Region, FMonth - мои независимые переменные.FMonth - это переменная даты.

И код организует начало данных, но не конец данных.Например, когда я пытался:

data.head()

результат:

    index            SKU       Region     FMonth       sh

 0   8264  855019.133127  3975.495636 2013-01-01  67640.0

 1  20022  855019.133127  3975.495636 2013-02-01  73320.0

 2  31972  855019.133127  3975.495636 2013-03-01  86320.0

 3  43897  855019.133127  3975.495636 2013-04-01  98040.0

 4  55642  855019.133127  3975.495636 2013-05-01  73240.0

И,

data.tail()

результат:

     index       SKU      Region        FMonth       sh

 1281690     766746    0.000087    7187.170501   2017-03-01      0.0

 1281691     881816    0.000087    7187.170501   2017-09-01      0.0

 1281692     980113    0.000087    7187.170501   2018-02-01      0.0

 1281693     1020502   0.000087    7187.170501   2018-04-01      0.0

 1281694     1249130   0.000087    7187.170501   2019-03-01      0.0

где 'ш'- моя зависимая переменная.

Данные не очень привлекательны, но, пожалуйста, обратите внимание только на столбец FMonth (дата).

Как мы видим, последние строки расположены не в порядке возрастания, а в началестроки расположены в указанном порядке.И если я изменяю восходящий атрибут столбца FMonth в приведенном выше коде, значит, в порядке убывания данные показывают порядок в начальных строках, а не в последних.Что я делаю неправильно?Что нужно сделать, чтобы достичь возрастающего порядка во всем наборе данных?А что происходит и почему?

1 Ответ

0 голосов
/ 20 июня 2019

Вам просто нужно расставить приоритеты в Месяце?

z = pd.read_clipboard()
z.columns = [i.strip() for i in z.columns]

z.sort_values(['FMonth', 'Region', 'SKU'], axis=0, ascending=[True, True, True])


Out[23]: 
   index  SKU  Region    FMonth     sh
1  20022    8      52  1/1/2013  73320
0   8264    1      67  1/1/2013  67640
3  43897    5      34  3/1/2013  98040
2  31972    3      99  3/1/2013  86320
4  55642    4      98  5/1/2013  73240
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...