【对比python】针对累计值过滤 | 润乾 -欧洲杯在线开户
任务:找出销售额占到一半的前n个客户,并按销售额从大到小排序
python
1 | import pandas as pd |
2 | sale_file = "e:\\txt\\sales_volume.csv" |
3 | sale_info = pd.read_csv(sale_file) |
4 | sale_info.sort_values(by='amount',inplace=true,ascending=false) |
5 | half_amount = sale_info['amount'].sum()/2 |
6 | vip_list = [] |
7 | amount = 0 |
8 | for client_info in sale_info.itertuples(): |
9 | amount = getattr(client_info, 'amount') |
10 | if amount < half_amount: |
11 | vip_list.append(getattr(client_info, 'client')) |
12 | else: |
13 | vip_list.append(getattr(client_info, 'client')) |
14 | break |
15 | print(vip_list) |
pandas没有现成的循环函数计算满足条件的位置,所以只能用for循环来完成计算。
集算器
a | ||
1 | e:\\txt\\sales_volume.csv | 数据存放路径 |
2 | =file(a1).import@tc().sort@z(amount) | 导入数据并按amount降序排序 |
3 | =a2.sum(amount)/2 | 计算销售额总量的一半 |
4 | =a2.pselect(cum(amount)>=a3) | 找到销售额超过一半的位置 |
5 | =a2.(client).m(:a4) | 取该位置之前的客户名 |
集算器提倡使用循环函数计算,计算同时根据条件进行删选并记录位置信息。