Я думаю, что вы просите преобразовать ваши данные в так называемые широкоформатные данные.То, что у вас есть в настоящее время, это данные в форме.Чтобы переключаться между ними в pandas
, используйте melt
и pivot
(или stack
и unstack
).( Проверьте этот пост или мой более общий пост .)
У меня нет ваших данных, но попробуйте
(housing_data.groupby(['Date', 'Bins'])
.agg({'Price': 'mean'})
.reset_index()
.pivot(index='Date', columns='Bins',
values='Price'))
(Строка reset_index
является печальной необходимостью заставить панд снова распознавать Date как столбец после команды agg
.)
Если вы хотите переименовать ячейки, вы можете использовать rename
до вызова groupby
, но было бы проще, если бы вы просто создали свои собственные корзины с помощью pd.cut
.Вот пример использования iris
:
import seaborn as sns
import pandas as pd
iris = sns.load_dataset('iris')
iris['bins'] = pd.cut(iris['sepal_length'],
bins=3,
labels=['lo', 'med', 'hi'])
(iris.groupby(['species', 'bins'])
.agg({'sepal_length': 'mean'})
.reset_index()
.pivot(index='species', columns='bins',
values='sepal_length'))
bins lo med hi
species
setosa 4.959574 5.733333 NaN
versicolor 5.281818 6.055556 6.900000
virginica 4.900000 6.265625 7.294118