当前位置: 首页 > 知识库问答 >
问题:

如何找到中位数[重复]

时同
2023-03-14

我有这样的数据。

Ram,500
Sam,400
Test,100
Ram,800
Sam,700
Test,300
Ram,900
Sam,800
Test,400

从上述数据中细化“中位数”的最短方法是什么。我的结果应该是这样的...

中位数 = 1/2(n 1),其中 n 是样本中数据值的数量。

Test 500
Sam 700
Ram 800

共有3个答案

咸亦
2023-03-14

您的数据实际上是如何表示的还不太清楚,所以我假设它是一个元组列表:

data = [('Ram',500), ('Sam',400), ('Test',100), ('Ram',800), ('Sam',700), 
        ('Test',300), ('Ram',900), ('Sam',800), ('Test',400)]

from collections import defaultdict

def median(mylist):
    sorts = sorted(mylist)
    length = len(sorts)
    if not length % 2:
        return (sorts[length / 2] + sorts[length / 2 - 1]) / 2.0
    return sorts[length / 2]

data_dict = defaultdict(list)
for el in data:
    data_dict[el[0]].append(el[1])

print [(key,median(val)) for key, val in data_dict.items()] 
print median([5,2,4,3,1])   
print median([5,2,4,3,1,6])
#output:
[('Test', 300), ('Ram', 800), ('Sam', 700)]
3
3.5

函数中值从列表中返回中值。如果条目数为偶数,则取中间两个条目的中间值(这是标准值)。

我已使用 defaultdict 创建了一个由数据及其值键入的字典,这是数据的更有用的表示形式。

锺离辰沛
2023-03-14

使用numpy的中值函数。

祝宏放
2023-03-14

Python 3.4包含内置的统计数据,因此您可以使用< code>statistics.median方法:

>>> from statistics import median
>>> median([1, 3, 5])
 3
 类似资料:
  • 问题内容: 我有以下sql查询,该查询提供了按月,周和日分组的总h_time。相反,我想要月,周和日的h_time中位数。如何在Oracle SQL中做到这一点? 输出: 问题答案: 您的问题可能出在DATE类型携带的时间部分(即使您未明确设置它)。 要摆脱它,您可以使用trunc函数。 代替: 经过: 和: 经过:

  • 问题内容: 基本上,我只需要获取一个5位数的数字,并用空格分隔即可。5位数字可以在varchar中的任何位置。 示例:我在SQL 2008表中有一个varchar列,其中包含这些各种数据 5位数字可以在任何空格之间分隔的地方,什么是最好的提取方法呢? 谢谢 这样的行应返回空白 在没有运气的情况下尝试了以下内容 我想我需要结合使用对varchar中的空间数量进行计数。和以上。但我不确定该怎么做 问题

  • 我有一个csv文件,我想对第一列进行排序(从最大到最大)。第一列的名称是“CRIM”。 我可以阅读第一列,但我无法对其进行排序,数字是浮点数。 另外,我想找到列表的中位数。 这就是我到目前为止所做的:

  • 问题内容: 我正在尝试使curl遵循重定向,但无法完全正常工作。我有一个字符串,我想将它作为GET参数发送到服务器并获取结果URL。 例: 字符串= Kobold害虫 网址= _www.wowhead.com/search?q=Kobold+Worker_ 如果您转到该URL,它将把您重定向到“ www.wowhead.com/npc=257”。我希望curl将此URL返回到我的PHP代码,以便我

  • 我的任务是突出显示熊猫数据框中的所有电子邮件副本。是否有一个函数用于此操作,或者有一种方法可以删除所有非重复项,从而为我留下一个很好的列表,列出数据集中的所有重复项? 该表由六列组成: 我想摆脱最后一列,因为最后一封邮件不是重复的。

  • 本文向大家介绍如何在R中找到没有分位数名称的分位数?,包括了如何在R中找到没有分位数名称的分位数?的使用技巧和注意事项,需要的朋友参考一下 R中的分位数的计算非常简单,我们只需要使用分位数功能,它就会返回所有分位数为0%,25%,50%,75%和100%的分位数。如果我们要避免打印这些分位数的名称,则可以将name = FALSE与分位数功能一起使用。例如,如果我们有一个叫做x的向量,那么没有名字