首页 > 解决方案 > Matplotlib 箱线图与 groupby

问题描述

数据框

Year    Shows_Released  ShowType
2018    13              tvSpecial
2018    14              Short
2018    8               movie
2019    9               tvSpecial
2019    11              Short
2018    10              Documentary
2019    11              movie
2018    6               Docudrama
2019    10              Documentary
2018    7               Drama
2019    14              Docudrama

我需要创建显示 2018 年发布的 Shows_Released 与 2019 年发布的 Shows_Released 的箱线图

代码:

import pandas as pd
import matplotlib.pyplot as plt
df=pd.read_csv('filename')
df=df[['Year', 'Shows_Released']]
grouped_df=merge.groupby('Year')
for key, item in grouped_df:
    print(grouped_df.get_group(key), "\n\n")

无法弄清楚如何创建包含所有值的列表并将其传递给 plt.boxplot()

标签: python-3.xpandasmatplotlibboxplot

解决方案


这应该只使用 matplotlib 来解决问题:

import pandas as pd
import matplotlib.pyplot as plt

df=pd.read_csv('data.csv')
df = df[['Year', 'Shows_Released']].groupby("Year").sum().reset_index()
plt.bar(df.Year, df.Shows_Released,tick_label=df.Year )
plt.savefig("test")

请注意,我使用的是条形图而不是箱线图,因为给定您的数据,箱线图没有意义,特别是如果您只想总结所有显示类型。

箱形图


推荐阅读