построить круговую диаграмму для столбца в кадре данных pandas, сгруппировав столбец - PullRequest
0 голосов
/ 02 апреля 2019

Этот вопрос относится к моему предыдущему вопросу.

Я хотел бы построить столбец кадра данных панд так, чтобы я мог нарисовать круговую диаграмму в 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)

Но это не работает.

Как изменить запрос?

спасибо!

1 Ответ

0 голосов
/ 02 апреля 2019

Вы пробовали:

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...