我有一个数据框:
level type count
A 00 123
B 00 542
C 00 985
D 00 786
A 01 423
B 01 552
C 01 785
D 01 686
A 02 523
B 02 642
C 02 385
D 02 86
我希望在4个不同级别下使用四个饼图:每个饼图都具有有关不同类型00、01、02等的数据。
A - pie chart1 contains information about different 'type'
B - pie chart2 contains information about different 'type'
C - pie chart3 contains information about different 'type'
D - pie chart4 contains information about different 'type'
实际上,我必须使它动态化。例如,只有不同的级别。 A,... D是固定的。但是根据我选择的数据帧,不同类型的00,01,... 09,10可以有多种类型。我必须处理多个数据帧,它们具有相同的级别,但类型不同。
我试图在df上使用groupby,但是它不起作用。
df = df.groupby(['level', 'type']).size().unstack(fill_value=0)
答案 0 :(得分:1)
那行得通!
import pandas as pd
df = pd.DataFrame({'level': ['A', 'B', 'C', 'D', 'A', 'B', 'C', 'D', 'A', 'B', 'C', 'D'],
'type': ['00', '00', '00', '00', '01', '01', '01', '01', '02', '02', '02', '02'],
'count':[123, 542, 985, 789, 423, 552, 785, 686, 523, 642, 385, 85]})
# Group it
group_df = df.groupby(['level'])
for name, group in group_df:
ax = group.groupby(['type']).sum().plot(kind='pie', y='count', legend=None, title=name)
ax.set_ylabel(name)
希望有帮助。