#python
#python
Вопрос:
У меня есть 2 поля «market_cap» и «debt_ratio», где я использую функцию pandas cut, чтобы создать 5 подгрупп на основе market_cap.
Я заинтересован в создании 5 блок-графиков (для каждой подгруппы), но отображаемые данные — это debt_ratio .
cleaned_data = ( cleaned_data.groupby( pd.cut( cleaned_data['market_cap_(in_us_$)'], 5 ) )['market_debt_to_capital_ratio'] )
# Create a figure instance
fig = plt.figure( 1, figsize = ( 9, 5 ) )
# Create an axes instance
ax = fig.add_subplot( 111 )
# Create the boxplot
bp = ax.boxplot( cleaned_data )
# Save the figure
fig.savefig( 'fig1.png', bbox_inches = 'tight' )
Однако я получаю следующую ошибку
File "C:...box_plots.py", line 29, in <module>
bp = ax.boxplot( cleaned_data[1] )
File "C:Python27libsite-packagespandascoregroupby.py", line 489, in __getitem__
raise NotImplementedError
NotImplementedError
Комментарии:
1. Вы уверены, что это как-то связано с фактическим построением графика? если вы разместите
a = cleaned_data[1]
в качестве второй строки кода — будет ли это выдавать исключение?2. Приведенный ниже ответ решил мою проблему. Кроме того, я не совсем понимаю ваше предложение о размещении «a = cleaned_data [1]». Я снова запускаю приведенный выше код, и теперь я получаю: File «C:…box_plots.py «, строка 32, в файле <module> bp = ax.boxplot(cleaned_data ) «C:Python27libsite-packagesmatplotlibaxes.py «, строка 5967, в boxplot, если нет hasattr(x[0], ‘ len ‘): Файл «C:Python27libsite-packagespandascoregroupby.py «строка 489, в getitem вызывает NotImplementedError
Ответ №1:
Вы можете создать блок-график, добавив отдельные группы в список.
test = []
for name, group in cleaned_data:
test.append(group)
boxplot(test)