【发布时间】:2022-01-03 01:02:31
【问题描述】:
我正在尝试创建一个箱线图,在 x 轴上我将引用数据框的两列,而在 y 轴上我将显示第三列的值。
让我参考一个示例数据框:
Lvl1 Lvl2 value
0 A 1 1
1 A 2 2
2 A 1 3
3 B 2 4
4 B 1 5
5 B 2 6
现在,我想绘制对应于 Lvl1 和 Lvl2 的组的箱线图。例如,对于由 (Lvl1 = A, Lvl2 = 1) 表示的组,箱线图将计算 {1,3} 的值。
我知道我可以创建一个像 Lvl0 这样的新列,它类似于 Lvl1 + Lvl2,但是有没有办法在没有这种操作的情况下创建箱线图?
关于以下代码:
import pandas as pd
import matplotlib.pyplot as plt
dataset = pd.DataFrame(
{'Lvl1': ['A', 'A', 'A', 'B', 'B', 'B'], 'Lvl2': [1, 2, 1, 2, 1, 2], 'value': [1, 2, 3, 4, 5, 6]})
grouped = dataset.groupby(['Lvl1', 'Lvl2'])
grouped.boxplot()
plt.show()
我收到一个错误:
KeyError:“[Index(['A', 1], dtype='object')] 中没有一个在 [index] 中”
提前谢谢你!
【问题讨论】:
标签: python pandas plot boxplot multi-index