python - 根据总值中的值比例拆分熊猫列
问题描述
我正在尝试根据每行对总数的贡献从更大的列表中创建一个列表。我希望列表包括占总数 40% 的“顶部”行
每行对应于总数的百分比。例如,第一个列表必须包括累计总计占“总数”40% 的行。“总计”是列中所有行的总和。
list = [0.2, 0.25, 0.15, 0.1, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05]
我想得到:
list1 = [0.2, 0.25, 0.15, 0.1]
因为列表 1 中的值是列表中的最大值,它们占列表的 40%。
我该如何编写python代码来做到这一点?
我不知道如何继续,我看过的所有资源都教如何根据固定值进行拆分,但我没有看到关于列表中值总和的基于分类的贡献百分比。
我想知道是否有人知道我可以使用什么功能,或者我可以如何进行。预先感谢您的任何帮助。
解决方案
你可以试试这个:
import math
list0
# Out[75]: [0.2, 0.25, 0.15, 0.1, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05]
list1 = sorted(list0)[-(math.ceil(len(list0)*0.4)):]
list1
# Out[79]: [0.1, 0.15, 0.2, 0.25]
推荐阅读
- ios - 表达式太复杂 swift Xcode 错误
- javascript - 多个切换框打开而不是 1
- micronaut - Micronaut 中的自定义范围
- python - 分类值和数值的相关矩阵不起作用
- python - 在自变量中使用 endpoint=False 时,curve_fit 失败
- angular - Angular:为可以包含许多不同属性的对象定义自定义类型/模型的正确方法?
- apache-spark - 如何为 Spark SQL 结构中的列设置别名
- c# - WPF DataGrid 不会将更改的值保存到变量
- php - 使用制表符和手风琴显示结果
- c# - 在代码中发布发票和库存问题