如何在不使用 pandas.series 的情况下查找列表的统计数据(最小值、最大值、分位数等)?

Dro*_*ird 0 python max min stat percentile

我有一个可变的元素列表。我希望能够找到,

计数 平均值
标准 最小值 25 % 50% 最大值 75%






我知道我可以使用 pandas.Series.describe()。但是,我有一个限制,即我不能使用 pandas 来解决特定问题。是否有任何内置函数/包可以给我相同的输出?谢谢。

GAP*_*002 6

正如评论中提到的countmin、 和max都是内置的,因此您可以简单地调用count(your_list), max(your_list), min(your_list)

如果可以的话,我建议使用PandasNumpy等库。如果您仅限于标准库,您还可以查看统计模块。

对于其他人:

意思是

def mean(li):
    return sum(li) / len(li)
Run Code Online (Sandbox Code Playgroud)

标准差

def std(li):
    mu = mean(li)
    return (sum((x-mu)**2 for x in li)/len(li)) ** 0.5
Run Code Online (Sandbox Code Playgroud)

四分位数

我将实现任何百分位,然后您可以percentile(your_list, 25)根据需要使用或其他。

def percentile(li, percentile):
    n = len(li)
    idx = n * percentile / 100
    return sorted(li)[math.floor(idx)]
Run Code Online (Sandbox Code Playgroud)

如果你想复制 Pandas描述功能:

def describe(li):
   return f"""
   count    {len(li)}
   mean     {mean(li)}
   std      {std(li)}
   min      {min(li)}
   25%      {percentile(li, 25)}
   50%      {percentile(li, 50)}
   75%      {percentile(li, 75)}
   max      {max(li)}"""
Run Code Online (Sandbox Code Playgroud)