这个问题与我以前的问题有关。
我想绘制一个熊猫数据框的列,以便可以在matplotlib中绘制一个饼图。
数据帧(my_df):
name value
cscas 15
wfdce 17
ynvas 22
rebdf 36
dgref 16
ytjvs 26
qtvsa 39
wvwev 32
我需要添加一个新列以标记该值属于某个组, 例如my_df:
name value value_group
cscas 15 [10, 19]
wfdce 17 [10, 19]
ynvas 22 [20, 29]
rebdf 36 [30, 39]
dgref 16 [10, 19]
ytjvs 26 [20, 29]
qtvsa 39 [30, 39]
wvwev 32 [30, 39]
我需要使用value_group进行“分组依据”,以便可以在饼图中以百分比形式显示“名称”的数量。
[10, 19] 2
[30, 39] 3
....
我用过:
fig, ax = plt.subplots()
my_df['value_group'] = ((my_df['value']//10 * 10).astype('string') , (self.__df['value']//10 + 1) * 10 - 1).astype('string'))
new_df = my_df.groupby(['value_group'])['name'].size()
ax.pie(new_df.values, labels = [x for x in new_df.keys()], autopct='%1.1f%%', shadow = False, startangle = 90)
但是,它不起作用。
如何更改查询?
谢谢!
答案 0 :(得分:0)
您尝试过吗:
my_df['value_group'] = pd.cut(my_df['value'], range(0, 50, 10), right=False)
new_df = my_df.groupby('value_group').agg({'name': 'count'})
new_df.plot.pie(y='value', figsize=(6, 6), autopct='%1.1f%%', shadow = False, startangle = 90)