#python #matplotlib #pandas
#python #matplotlib #pandas
Вопрос:
У меня есть pandas DataFrame
, который я использовал groupby
, чтобы перевести его в следующий формат:
Building Type 1 1000 - 3000m2 0.766355
3000 - 10000m2 0.140187
300 - 1000m2 0.084112
10000 - 30000m2 0.009346
Building Type 2 1000 - 3000m2 1.000000
Building Type 3 1000 - 3000m2 0.666667
3000 - 10000m2 0.222222
10000 - 30000m2 0.055556
300 - 1000m2 0.055556
Building Type 4 1000 - 3000m2 0.526316
3000 - 10000m2 0.473684
Что я пытаюсь с этим сделать, так это создать горизонтальную столбчатую диаграмму с линейкой для каждого типа здания. По сути, я хотел бы преобразовать данные в следующий формат:
Building Type 300 - 1000m2 1000 - 3000m2 3000 - 10000m2 10000 - 30000m2
Building Type 1 0.084112 0.766355 0.140187 0.009346
Building Type 2 1.000000
Building Type 3 0.055556 0.666667 0.222222 0.055556
Building Type 4 0.526316 0.473684
Какую функцию мне нужно использовать для достижения этой цели?
Ответ №1:
Это было намного проще, чем я думал. Это просто случай вызова unstack
groupby
объекта, а затем его построения.
df = grouped.unstack()
df.plot(kind='barh', stacked=True)
Ответ №2:
piv = pd.pivot_table(datasetname, values="counts",index=["buildingtype"], columns=["m2"], fill_value=0)
Комментарии:
1. Есть ли причина, по которой это лучший подход?
2. @kathleen, хотя ваш ответ может быть правильным, было бы неплохо, если бы вы немного прокомментировали его.