Python 通过唯一标识符对范围内的事务进行计数的最有效方法
试图确定按项目标识符对范围内的事务进行计数的最佳方法。下面是一个示例csv数据集Python 通过唯一标识符对范围内的事务进行计数的最有效方法,python,python-3.x,Python,Python 3.x,试图确定按项目标识符对范围内的事务进行计数的最佳方法。下面是一个示例csv数据集 Customer A,$1.55 ,12:01 Customer B,$12.95 ,12:02 Customer A,$28.77 ,12:03 Customer C,$35.65 ,12:04 Customer A,$11.95 ,12:05 Customer C,$7.65 ,12:06 Customer B,$55.96 ,12:07 Customer C,$44.25 ,12:08 如果每秒发生数千笔交
Customer A,$1.55 ,12:01
Customer B,$12.95 ,12:02
Customer A,$28.77 ,12:03
Customer C,$35.65 ,12:04
Customer A,$11.95 ,12:05
Customer C,$7.65 ,12:06
Customer B,$55.96 ,12:07
Customer C,$44.25 ,12:08
如果每秒发生数千笔交易,我想知道某个范围内每个客户的交易数量,比如0-10美元、11-20美元、21-30美元、31-40美元等等,那么最有效的方法是什么
如果我用python制作子列表,就像
客户A=[$1、$5、$12、$25、$18、$11]
然后,我可以很容易地使用某种计数函数,如:
def count_range_in_list(li, min, max):
ctr = 0
for x in li:
if min <= x <= max:
ctr += 1
return ctr
print(count_range_in_list(Customer A, 0, 10))
[来源:https://www.w3resource.com/python-exercises/list/python-data-type-list-exercise-31.php ]
只是在努力寻找一种从大型数据集执行此操作的有效方法。因为我了解我的客户,所以我可以在事务数据和该列表之间进行比较,并尝试以这种方式解析它,然后按范围进行计数
任何关于开始的帮助都很好。谢谢。听起来像是在一个表上进行聚合,这个表有两个选项。如果您可以不使用数据帧,那么操作将是最简单的,但肯定不是最有效的 您还可以使用装箱方法 如果SQL是一个选项,它将使操作更加简单和高效 例如: 以客户为例 选择* ,如果数量<10,1,0为类别1 ,如果数量大于10且数量小于20,则1,0为类别2 来自客户交易 其中customer='customer A' 选择客户 ,sumcat_1作为cat_1计数 ,sumcat_2作为cat_2计数 来自客户 按1分组
您是否考虑过使用字典来存储客户的值,而不是将每个值分配给它自己的变量?我当然可以这样做,但我仍然认为我的问题在于,我必须找到一种有效的方法来计算所需范围内的事务数。在这里使用多索引数据帧应该很好。客户为第一指数,价格范围为columns@VisheshMangia我现在正在回顾这一点,它看起来很有希望。谢谢你的建议,我不是熊猫的普通用户,因此,如果没有一点实践,我真的帮不上忙,但如果能找到相关的答案,那可能是个好主意,因为我认为这些文档在多索引部分并不友好