Python. Pandas. Multiindex. Как перевести часть столбцов в строки-индексы?
С помощью df1 = pd.read_csv(r'C:\2022.csv', header=[0,1]) загружаю исходные данные.
Подскажите как можно получить данные как во второй таблице?
Ответы (1 шт):
Автор решения: strawdog
→ Ссылка
В общем, в виду отсутствия воспроизводимого примера и неразберихи у автора вопроса с датами в желаемом результате, могу предложить следующее:
- Во-первых, при чтении из csv у вас теряется мультииндекс, поэтому работа с двойным заголовком вам не нужна.
- Как разберетесь с мультииндексом, можете использовать такой алгоритм:
df = pd.read_csv(r'3.csv', header=1)
res = pd.pivot_table(df, values=["Sum1", "Sum2", "Sum3"],
index=["Col1", "Col2", "Col3", "Col4"]).stack().reset_index()
res:
Col1 Col2 Col3 Col4 level_4 0
0 0 bla bla 1 Sum1 100
1 0 bla bla 1 Sum2 200
2 0 bla bla 1 Sum3 300
3 1 bla bla 2 Sum1 20
4 1 bla bla 2 Sum2 50
5 1 bla bla 2 Sum3 30
6 2 bla bla 3 Sum1 10
7 2 bla bla 3 Sum2 80
8 2 bla bla 3 Sum3 30

