我有一个由字典(公司和收入)组成的列表。我想对这个列表进行 ABC 分析,并且正在寻找最有效的方法。
myList = [{"Company":"Company A", "Revenue":100}, {"Company":"Company B", "Revenue":350}, {"Company":"Company C", "Revenue":80}]
我想使用 numpy 中的 cumsum。所以我首先必须以相反的顺序对收入进行排序。我会这样做:newList = sorted(myList, key=lambda k: k['Revenue'], reverse=True)
我现在如何获得收入的累计总和以便能够进行 ABC 分析?
最佳答案
关于你做什么,Pandas 似乎更适合。下面是一个例子:
df = pd.DataFrame(myList) # Create a dataframe
sortedDf = df.sort_values('Revenue', ascending=False) # Sort by revenue
result = sortedDf['Revenue'].to_numpy().cumsum() # Make the cumulative sum
print(sortedDf)
print(result)
结果如下: Company Revenue
1 Company B 350
0 Company A 100
2 Company C 80
[350 450 530]
请注意,Pandas 在内部使用 Numpy 来存储其列。请注意,您可以直接在数据帧上进行累积总和以保留元信息并进行进一步计算。
关于python - 如何在python中的多个字典列表中查找项目的累积总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67241117/