如何处理熊猫中的汇总数据?

时间:2018-09-18 15:44:01

标签: python pandas

我有一个像这样的数据集:

   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中提取中位数的方法。

1 个答案:

答案 0 :(得分:1)

不,熊猫不会像您期望的那样在此类物体上运行。在StackOverflow的其他地方,该表结构的computing a median至少也需要几行代码。

如果您想制作自己的海钩/包装器,那么一个不错的起点可能是一种有效的percentiles(df, p)方法。中位数仅为percentiles(df, [50])。箱形图将仅为percentiles(df, [0, 25, 50, 75, 100]),依此类推。这样,您的开发时间可能会非常短(取决于所需统计信息的复杂程度)。