Я знаю, как построить что-то вроде этого:
SEASON1 SEASON2 SEASON3
area
A 29839.0 27367.0 25627.0
B 13812.0 12533.0 12598.0
C 22044.0 21700.0 21122.0
D 16682.0 14678.0 13347.0
E 7418.0 6819.0 6276.0
F 23985.0 23135.0 21170.0
G 16653.0 15016.0 13521.0
H 8359.0 7804.0 7712.0
I 21999.0 19799.0 19528.0
С помощью
deaths_season.plot(kind='bar', stacked=True, rot=90, edgecolor='black')
deaths_season.T.plot(kind='bar', stacked=True, rot=0, edgecolor='black')
В результате чего:
Мне трудно получить те же (или даже лучше выглядящие) графики для следующего df
который представляет собой оригинальный df
но сделан здесь более элегантно.
То, что вы хотите сделать, - это разблокировать ваш фреймворк и изменить название столбцов.
Вы можете сделать это, выполнив следующие действия:
df.unstack()
.rename(columns = {
"2016Q1" : "Season 1",
"2016Q2" : "Season 2",
"2016Q3" : "Season 3",
})
Вы можете найти примеры документации о том, что делает стеллаж, и как он это делает. Что касается метода переименования, он принимает сопоставление, чтобы преобразовать ваши имена из чего-то в другое.
Я не пытался заставить ваш пример работать, но я привел пример из вышеперечисленной документации.
index = pd.MultiIndex.from_tuples([('one', 'a'), ('one', 'b'),
('two', 'a'), ('two', 'b')])
df = pd.DataFrame( np.arange(1.0, 5.0), index=index, columns=['hi'])
print(df)
# hi
# one a 1.0
# b 2.0
# two a 3.0
# b 4.0
df = df.unstack(level = -1)
.rename(columns = {
"a" : "Season 1",
"b" : "Season 2"
})
print(df)
# hi
# Season 1 Season 2
# one 1.0 2.0
# two 3.0 4.0
Может быть лучший способ обработать "привет" над вашим DataFrame, но вы можете просто select
его, и он исчезнет.
print( s['hi'] )
Season 1 Season 2
one 1.0 2.0
two 3.0 4.0
df
верно? Если так, я пойду и отмечу ответ как принятый.