【发布时间】:2015-04-17 04:50:31
【问题描述】:
我有一个数据框,其中包含每组收入的观察次数:
INCAGG
1 6.561681e+08
3 9.712955e+08
5 1.658043e+09
7 1.710781e+09
9 2.356979e+09
我想计算收入中位数。我是什么意思? 让我们从一个更简单的系列开始:
INCAGG
1 6
3 9
5 16
7 17
9 23
它代表这组数字:
1 1 1 1 1 1
3 3 3 3 3 3 3 3 3
5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7
9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
我可以重新订购
1 1 1 1 1 1 3 3 3 3 3 3 3 3 3 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 7 7 7 7 7
7 7 7 7 7 7 7 7 7 7 7 7 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
这就是我的意思——这里的中位数是7。
【问题讨论】:
-
对不起,你想要INCAGG中值的索引吗?
-
您似乎忽略了科学记数法...您看到 5 在右侧列中的值几乎是 3 的两倍,对吧?
-
嗯,你收入的中位数是第 5 行的那个是熊猫告诉我的
-
对不起各位,可能有多种混淆来源;其中之一:我没有注意到第 5 组以后是
e+09而不是e+08。 -
哦,第二列是权重。你只需要一个加权中位数。可能是这样的stackoverflow.com/questions/20601872/… 但总的来说,搜索“加权”任何东西都会得到很多结果。这在其他一些统计包(如 stata)中真的很容易,但我不知道它是否在 pandas 中那么容易。也许 scipy 或 statsmodels 有什么?