我有一个像这样的数据集:
val
1
1
3
4
6
6
9
...
由于其巨大,我无法将其加载到pandas数据框中。因此,我使用Spark汇总数据以形成:
val occurrences
1 2
3 1
4 1
6 2
9 1
...
并将其加载到pandas数据框。 “ val”列不超过100,因此不会占用太多内存。
我的问题是,我无法在这样的结构上轻松操作,例如使用熊猫查找均值或中位数,也不绘制带有seaborn的箱线图。我只能使用我编写的显式公式来执行此操作,但不能使用内置的方法。是否有熊猫结构或其他任何方式可以处理此类数据?
例如:
1,1,3,4,6,6,9
将是:
df = pd.DataFrame({'val': [1,3,4,6,9], "occurrences" : [2,1,1,2,1]})
中位数为4。我正在寻找一种直接从给定df中提取中位数的方法。
答案 0 :(得分:1)
不,熊猫不会像您期望的那样在此类物体上运行。在StackOverflow的其他地方,该表结构的computing a median至少也需要几行代码。
如果您想制作自己的海钩/包装器,那么一个不错的起点可能是一种有效的percentiles(df, p)
方法。中位数仅为percentiles(df, [50])
。箱形图将仅为percentiles(df, [0, 25, 50, 75, 100])
,依此类推。这样,您的开发时间可能会非常短(取决于所需统计信息的复杂程度)。