【发布时间】:2018-04-19 08:23:25
【问题描述】:
我正在尝试收集汇总统计数据以生成箱线图。
我有一本字典,其中的键是要在 y 轴上绘制的变量,而值是它们在数据中的计数。
d = {16: 5,
21: 9,
44: 2,
2: 1}
我想知道是否有一种方法可以仅从计数中生成中位数、Q1、Q3 等统计数据 - 我不想将它变成像 [16, 16, 16, 16, 16, 21, 21, ...] 这样的列表并从中计算。这是因为我试图节省大量内存,而不必将单个观察结果存储在内存中。
编辑
更具体一点。给定一个输入
d = {4: 2, 10: 1, 3: 2, 11: 1, 18: 1, 12: 1, 14: 1, 16: 2, 7: 1}
我想要输出的东西
{'q1': 4, 'q2': 10.5, 'q3', 15, 'max': 18, 'min': 3}
【问题讨论】:
-
您的问题所需的输出是什么样的?
-
@MichaelHall,以下解决方案有帮助吗?如果是这样,请随时接受(在左侧打勾),当然,如果有任何不清楚的地方,请询问。
-
@jpp 它有效,但正如您所提到的,并非在所有情况下。只是想解决极端情况。只是有点难以完全理解你的方法是如何工作的。将接受一次(如果)我弄清楚如何让它适用于所有情况。此外,它似乎正在多次传递相同的数据 (
d.values)。我觉得一定有一种方法可以一次性完成?
标签: python dictionary statistics