Измените форму кадра данных Pandas и сгруппируйте столбцы двух уровней.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Измените форму кадра данных Pandas и сгруппируйте столбцы двух уровней.

Сообщение Anonymous »

У меня есть фрейм данных с плоской структурой и уникальными строками, как показано ниже.
Изображение

Мне нужно изменить его форму, как показано ниже.
Изображение

Используя сводную таблицу и меняя уровни местами, мне удалось получить вышеуказанный результат, но он случайно отсортировал подстолбцы уровня 1.

Код: Выделить всё

data = {
"Case_ID": ["1-1 Max Export", "1-1 Max Export", "1-2 Max Export", "1-2 Max Export", "1-1 Max Export", "1-1 Max Export"],
"Item": ["3-Winding TX", "R1-SUT1", "3-Winding TX", "R1-SUT1", "3-Winding TX", "R1-SUT1"],
"HV Current": [0.5, 0.1, 0.4, 0.1, 0.5, 0.1],
"Total Power": [114.5, 2.2, 113.4, 2.2, 100.0, 1.8],
"Tap Pos.": [15, 3, 1, 3, 20, 3]
}

df = pd.DataFrame(data)   # Original Dataframe Format with Flat Structure

item_order = list (df.columns[2:])  # The second Level columns must be in same order as per the original df

# Pivot the DataFrame
reshaped_df = df.pivot_table(index='Case_ID',
columns='Item',
values=list (df.columns[2:]),
aggfunc='first')

# Swap level 0 and level 1 columns
reshaped_df.columns = reshaped_df.columns.swaplevel(0, 1)

# Without.sort_index(axis=1) the code doesn't work.
# The Level 0 and Level 1 colums shallbe in the same order as per the original df
reshaped_df = reshaped_df.sort_index(axis=1)

reshaped_df
Поз. крана. Подстолбец должен быть последним в каждой категории.
Последовательность подстолбцов должна соответствовать исходному df (т. е. ток высокого напряжения, общая мощность, положение ответвления).
  • a) Я хочу исправить приведенный выше код.
  • b) Также интересно увидеть там это еще один способ добиться этого вместо
    использования сводной таблицы.


Подробнее здесь: https://stackoverflow.com/questions/786 ... el-columns
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»