У меня есть следующий фрейм данных:
df = pd.DataFrame({})
df['Date'] = pd.to_datetime(np.arange(0,3), unit='h', origin='2018-08-01 03:00:00')
df['X'] = [3,5,4]
df['Y'] = [6,7,8]
Date X Y
0 2018-08-01 03:00:00 3 6
1 2018-08-01 04:00:00 5 7
2 2018-08-01 05:00:00 4 8
Я хочу отсортировать значения столбца X от наибольшего к наименьшему, не перемещая порядок даты. Я не хочу индексировать свою дату и, желательно, я не хочу делать копии кадра данных, который я объединяю после сортировки X. Результат должен выглядеть следующим образом:
Date X Y
0 2018-08-01 03:00:00 5 7
1 2018-08-01 04:00:00 4 8
2 2018-08-01 05:00:00 3 6
РЕДАКТИРОВАТЬ:
df = pd.DataFrame({})
df['Date'] = pd.to_datetime(np.arange(0,6), unit='h', origin='2018-08-03:00:00')
df['X'] = [3,5,4,1,8,2]
df['Y'] = [6,7,8,6,7,8]
df['name'] = [1,1,1,2,2,2]
Я хочу отсортировать, как указано выше, но теперь я хочу сгруппировать столбец уровня «имя». Результат должен выглядеть следующим образом:
Date X Y name
1 2018-08-01 04:00:00 5 7 1
2 2018-08-01 05:00:00 4 8 1
0 2018-08-01 03:00:00 3 6 1
4 2018-08-01 07:00:00 8 7 2
5 2018-08-01 08:00:00 2 8 2
3 2018-08-01 06:00:00 1 6 2
Таким образом, для имени = 1 все значения X отсортированы от высокого к низкому, а затем для name = 2 все значения X отсортированы от высокого к низкому .