Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中创建包含类别的频率表_Python - Fatal编程技术网

在Python中创建包含类别的频率表

在Python中创建包含类别的频率表,python,Python,我试图用Python制作一个简单的频率表,但我找不到答案。我的数据包含从0到10的数字,例如: 1,2,3,4,5,5,5,8,8,0,9,10,2,2,10,10,7,7,7,9. 我想制作一个频率表,将这些值的计数和百分位数(不包括零!)分为三类: 第1类:低于5,5 类别2:介于5,5和8之间 类别3:8或以上 然后,我的输出需要是: 类别1:频率9/43% 第2类:频率4/19% 第3类:频率8/38% 如何在Python中做到这一点?适用于您的用例的更新版本: dd = {"cat_1

我试图用Python制作一个简单的频率表,但我找不到答案。我的数据包含从0到10的数字,例如:

1,2,3,4,5,5,5,8,8,0,9,10,2,2,10,10,7,7,7,9.

我想制作一个频率表,将这些值的计数和百分位数(不包括零!)分为三类:

第1类:低于5,5
类别2:介于5,5和8之间
类别3:8或以上

然后,我的输出需要是:

类别1:频率9/43%
第2类:频率4/19%
第3类:频率8/38%


如何在Python中做到这一点?

适用于您的用例的更新版本:

dd = {"cat_1":0, "cat_2":0, "cat_3":0}
values = [1,2,3,4,5,5,5,8,8,8,0,9,10,2,2,10,10,7,7,7,7,9]
for value in values:
    if value > 0 and value < 5.5:
        dd["cat_1"] += 1
    elif value >= 5.5 and value < 8:
        dd["cat_2"] += 1
    elif value >= 8:
        dd["cat_3"] += 1

print(f"Category 1 : frequency {dd['cat_1']}/{(dd['cat_1']/(len(values)-values.count(0)))*100}")
print(f"Category 2 : frequency {dd['cat_2']}/{(dd['cat_2']/(len(values)-values.count(0)))*100}")
print(f"Category 3 : frequency {dd['cat_3']}/{(dd['cat_3']/(len(values)-values.count(0)))*100}")
dd={“猫1”:0,“猫2”:0,“猫3”:0}
值=[1,2,3,4,5,5,8,8,0,9,10,2,2,10,10,7,7,7,9]
对于值中的值:
如果值>0且值<5.5:
dd[“类别1”]+=1
elif值>=5.5且值<8:
dd[“类别2”]+=1
elif值>=8:
dd[“类别3”]+=1
打印(f“第1类:频率{dd['cat_1']}/{(dd['cat_1']/(len(values)-values.count(0)))*100}”)
打印(f“第2类:频率{dd['cat_2']}/{(dd['cat_2']/(len(values)-values.count(0)))*100}”)
打印(f“第3类:频率{dd['cat_3']}/{(dd['cat_3']/(len(values)-values.count(0)))*100}”)

据我所知,您试图以某种方式创建所谓的垃圾箱。也许numpy可以帮你做这件事,明白吗。另一种方法是使用pandas创建数据帧。这看起来不错。但是如何排除数据中的零呢?for循环中的部分很清楚(如果值>0,值<5.5),但我如何将它们排除在百分位数中?哦,那么你希望它们包括在频率中,而不是百分位数中?marita终于明白了你的意思。看我更新的答案!