来自python中值表的箱线图

Posted

技术标签:

【中文标题】来自python中值表的箱线图【英文标题】:Boxplot from a table of values in python 【发布时间】:2018-02-20 22:48:14 【问题描述】:

我有一个数据框,其中包含年份值、乘客数据及其来自的国家/地区。该国家/地区在数据框架方面保持不变。

我正在尝试绘制箱线图。其中国家:“美国”在 x 轴上,所有年份的乘客数据在 y 轴上显示。

但我得到:AttributeError: 'Series' object has no attribute 'boxplot'

from matplotlib import pyplot as plt 
import pandas as pd

df = pd.read_csv('CityPairs.csv')

filt = (df.Country == 'USA')
df = df[filt]
reqcol = ['Year', 'Country', 'Passengers_Total']
df = df[reqcol]

groupbyCountry = df.groupby(['Year', 'Country'])['Passengers_Total'].sum()
groupbyCountry

groupbyCountry.boxplot(column = 'Passengers_Total', by = 'Country')

任何帮助将不胜感激

【问题讨论】:

【参考方案1】:

使用reset_index 或参数as_index=TrueDataFrame

groupbyCountry = df.groupby(['Year', 'Country'])['Passengers_Total'].sum().reset_index()

或者:

groupbyCountry = df.groupby(['Year', 'Country'], as_index=False)['Passengers_Total'].sum()

如果只绘制一个类别 (USA),您可以简化代码:

groupbyCountry.boxplot(column = 'Passengers_Total')

【讨论】:

看来已经做到了!计时器完成后我会打勾,干杯!

以上是关于来自python中值表的箱线图的主要内容,如果未能解决你的问题,请参考以下文章

根据中值对箱线图进行排序

R中的箱线图显示平均值

将实际数据覆盖在来自 pandas 数据框的箱线图上

带有 pandas groupby multiindex 的箱线图,用于来自 multiindex 的指定子级别

时间序列 Python 中每小时数据的箱线图

R语言 箱线图