Необходимо построить гистограмму в Pandas таким образом, чтобы ось x была категориальной, а ось y — суммой некоторого столбца

#python-3.x #pandas #data-processing

#python-3.x #pandas #обработка данных

Вопрос:

У меня есть фрейм данных в Pandas (с использованием Python 3.7), как показано ниже:

 #     actuals  probability   bucket
# 0      0.0     0.116375      2
# 1      0.0     0.239069      3   
# 2      1.0     0.591988      6
# 3      0.0     0.273709      3
# 4      1.0     0.929855      10
  

Где ‘bucket’ может принимать дискретные значения от 1 до 10. И ‘actuals’ может принимать только 2 значения, либо 1, либо 0.
Мне нужно построить гистограмму так, чтобы ось x = ‘bucket’ (т. е. от 1 до 10) и ось y = сумма ‘actuals’ . Тогда как я могу это сделать?

Ответ №1:

Используйте groupby.sum с plot :

 df.groupby('bucket')['actuals'].sum().plot(kind='bar')
  

При необходимости histogram используйте kind='hist'

Комментарии:

1. Привет @sandeep, решение kind =’bar’ сработало. В дополнение к этому, я попробовал приведенный ниже фрагмент кода, и это также сработало. bin_data_df_sorted.groupby(‘bucket’).actuals.sum().plot(kind =’bar’) Можете ли вы разбить эту строку и сообщить мне, почему «actuals.sum ()» работает нормально и что это значит? (Я новичок в Python)

2. @Bhuvi007 Вы можете получить доступ к столбцам фрейма данных с помощью .column_name , вот почему вы можете получить доступ с помощью .actuals . Но это не удается, если у вас есть специальные символы типа . в имени столбца или подобные пробелы.