#python #pandas
Вопрос:
Я хотел бы перейти от первого кадра данных ко второму? Как я могу это сделать? Невозможно изменить структуру фрейма данных заранее.
Фиктивный Код:
index1 = [("x","1"), ("x","3"), ("x","5"), ("y","1"), ("y","3")]
data = pd.DataFrame(index = pd.MultiIndex.from_tuples(index1), columns = ["A","B"])
data.loc[("x","sum"),:] = [19,10]
index2 = [("x","1"), ("x","3"), ("x","5"), ("x","sum"), ("y","1"), ("y","3")]
data2 = pd.DataFrame(index = pd.MultiIndex.from_tuples(index2), columns = ["A","B"])
Комментарии:
1. Ты имеешь в виду
sort_index
?
Ответ №1:
Вы можете sort_index
с помощью level=0
:
data.sort_index(level=0)
A B
x 1 NaN NaN
3 NaN NaN
5 NaN NaN
sum 19 10
y 1 NaN NaN
3 NaN NaN
Комментарии:
1. Спасибо, но что я могу сделать, чтобы мой заказ остался прежним для уровня 0 ?
2. @ManuelK вам нужно применить категориальный индекс с пользовательским заказом.
3. @ManuelK ты забыл назначить его обратно
data
?data = data.sort_index(level=0)
4. @ManuelK Или сортировка на месте:
data.sort_index(level=0, inplace=True)