import matplotlib.pyplot as plt import pandas as pd # 读取数据 data = pd.read_xlsx('FenDMC_sale.xlsx') # 绘制箱线图 fig, ax = plt.subplots() boxes = [] medians = [] labels = [] for name, group in data.groupby('FenDMC'): boxes.append(group['sale']) labels.append('\n'.join(name.split())) median = group['sale'].median() medians.append(median) ax.plot([len(medians)], [median], marker='o', color='red') ax.boxplot(boxes, labels=labels) # 配置图表 ax.set_xlabel('FenDMC') ax.set_ylabel('sale') ax.set_title('FenDMC and sale boxplot') plt.show()
时间: 2023-09-20 08:07:20 浏览: 111
这段代码是用来绘制一个箱线图的。首先,使用pandas库中的read_xlsx方法读取名为FenDMC_sale.xlsx的Excel文件。然后,对数据按FenDMC列进行分组,将每个分组内的sale数据存储在boxes列表中,并将每个分组的FenDMC名称存储在labels列表中。接着,计算每个分组内sale数据的中位数,将中位数存储在medians列表中,并在图表上用红色圆点表示。最后,使用matplotlib库中的boxplot方法绘制箱线图,并设置x轴和y轴的标签和标题。最终通过plt.show()方法显示图表。
相关问题
import numpy as np import scipy.stats as ss import pandas as pd import matplotlib.pyplot as plt import seaborn as sns df=pd.read_excel("./tmp_apply3.xlsx")读入后怎么取字段
你可以使用 Pandas 的 `loc` 或 `iloc` 方法来取出 DataFrame 中的特定字段。具体而言,`loc` 方法可以通过列名来取出字段,而 `iloc` 方法可以通过列的索引来取出字段。以下是两种方法的示例:
假设你要取出 `df` 中的 `sale` 和 `date` 两个字段,其中 `sale` 字段在第 2 列,`date` 字段在第 3 列,你可以这样做:
使用 `loc` 方法:
```python
# 通过列名取出字段
df_new = df.loc[:, ["sale", "date"]]
```
使用 `iloc` 方法:
```python
# 通过列的索引取出字段
df_new = df.iloc[:, [1, 2]]
```
上述代码中,`df_new` 就是取出 `df` 中的 `sale` 和 `date` 两个字段后得到的新 DataFrame。其中 `:` 表示取出所有行,`["sale", "date"]` 或 `[1, 2]` 表示取出第 2 列和第 3 列。你可以根据实际需要修改这些代码。
import pandas as pd import seaborn as sns import matplotlib.pyplot as plt plt.rcParams['font.family'] = 'Fangsong' # 指定使用宋体字体 fig= plt.figure(figsize=(30, 25), dpi=300) ax1= fig.add_subplot(131) # 读取数据 df = pd.read_excel("test_Fd.xlsx") 把Fendmc是140-160马力四轮驱动动力换挡拖拉机查找出来
你可以使用 Pandas 的 loc 函数来筛选符合条件的数据,代码如下:
```python
df.loc[(df['Fendmc'] == '140-160马力四轮驱动动力换挡拖拉机')]
```
其中,`df['Fendmc']` 表示选取数据表中名为 Fendmc 的列,`==` 表示判断是否相等,`'140-160马力四轮驱动动力换挡拖拉机'` 则为要查找的值。
这行代码会返回符合条件的所有行数据,你可以根据需要进行进一步处理。
阅读全文