首页 > 解决方案 > 根据总值中的值比例拆分熊猫列

问题描述

我正在尝试根据每行对总数的贡献从更大的列表中创建一个列表。我希望列表包括占总数 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代码来做到这一点?

我不知道如何继续,我看过的所有资源都教如何根据固定值进行拆分,但我没有看到关于列表中值总和的基于分类的贡献百分比。

我想知道是否有人知道我可以使用什么功能,或者我可以如何进行。预先感谢您的任何帮助。

标签: pythonpandas

解决方案


你可以试试这个:

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]

推荐阅读