使用Matplotlib创建Boxplot

Kee*_*tts 5 python matplotlib boxplot pandas

我正在使用python 3和jupyter笔记本。我有一个结构如下的熊猫数据框:

          location  price
Apr 25   ASHEVILLE   15.0
Apr 25   ASHEVILLE   45.0
Apr 25   ASHEVILLE   50.0
Apr 25   ASHEVILLE  120.0
Apr 25   ASHEVILLE  300.0
<class 'pandas.core.frame.DataFrame'>
Run Code Online (Sandbox Code Playgroud)

我只是想为每个位置创建一个箱形图,以显示每个位置中项目之间的价格范围。

当我运行以下代码时:

import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline


plt.boxplot(postings)
plt.show()
Run Code Online (Sandbox Code Playgroud)

它返回TypeError:无法散列的类型:'sl​​ice'

Ame*_*ale 6

我猜您需要在同一图中每个位置的箱线图。我修改了给定的数据框,为另一个位置添加了示例数据,看起来像-

   date   location month  price
0    25  ASHEVILLE   Apr   15.0
1    25  ASHEVILLE   Apr   45.0
2    25  ASHEVILLE   Apr   50.0
3    25  ASHEVILLE   Apr  120.0
4    25  ASHEVILLE   Apr  300.0
5    25  NASHVILLE   Apr   34.0
6    25  NASHVILLE   Apr   55.0
7    25  NASHVILLE   Apr   70.0
8    25  NASHVILLE   Apr  105.0
9    25  NASHVILLE   Apr   85.0
Run Code Online (Sandbox Code Playgroud)

现在,只需在此框架上调用boxplot并提供参数- columnby

postings.boxplot(column='price', by='location')
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明