找到一年中的前 n 个,然后是一年中的每个月
大家早上好,
我想要报告当年的前 n 个客户,然后显示这些前 n 个客户在一年中的绩效。 样本 df:
10
11
12
13
14
15
16
17 号
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
作为PD
= [
('', ['A','A','A','A',
'B','B','B','B',
'C','C','C','C',
'D','D','D','D']),
('', ['2023-08', '2023-09', '2023-10', '2023-11',
'2023-08', '2023-09', '2023-10', '2023-11',
'2023-08', '2023-09', '2023-10', '2023-11',
'2023-08'、'2023-09'、'2023-10'、'2023-11']),
('', [100, 200, 300, 400,
1, 2, 3, 4,
10、20、30、40、
1000、2000、3000、4000]
),
('状态', ['完成', '捆绑完成', '捆绑完成', '完成',
'','完成','','完成',
'','完成','','完成',
‘完成’,‘完成’,‘完成’,‘完成’]
df = pd..()
打印(df)
状态
0 A 2023-08 100 完成
1 A 2023-09 200 并列 完成
2 A 2023-10 300 并列 完成
3 A 2023-11 400 完成
4B 2023-08 1
5 B 2023-09 2 完成
6 B 2023-10 3
7 B 2023-11 4 完成
8 C 2023-08 10
9 C 2023-09 20 完成
10 C 2023-10 30
11 C 2023-11 40 完成
12 天 2023-08 1000 完成
13 D 2023-09 2000 完成
14 天 2023-10 3000 完成
15 天 2023-11 4000 完成
现在确定顶部,假设为two(n); 关于已完成交易的客户:
10
11
12
13
14
15
16
17 号
18
19
20
d = [
('', '总和')
# 首先是 df,然后是
mask = ((df['state'] == '完成') | (df['state'] == '捆绑完成'))
e = df[掩码].([''])[''].agg(d)
打印(e)
一个1000
乙6
碳60
d 10000
打印(例如(2,''))
d 10000
一个1000
因此,客户 A 和 D 是我表现最好的两个(n)个客户。
我现在想将此列表或 df 反馈回原始数据,以便在升序到顶部的情况下检索它们,并将客户列为行
年度表现
2023年8月 2023年9月 2023年10月 2023年11月
100 200 300 400
d 1 4000
你需要.
这是我的建议:
10
11
12
13
14
15
16
def (df, n):
= df[df['state'].isin(['完成', '捆绑完成'])]
aggs = {'':['总和']}
数据 = .('').agg(aggs)
数据 = 数据.()
数据。 = ['','']
数据 = 数据。(by='', =False)
数据。 头(n)
ls= 列表((df, 2)..)
数据 = pd.(df[df[''].isin(ls)], ='', 索引=[''],
=[''])
数据 = 数据.()
打印(数据)
输出:
2023年8月 2023年9月 2023年10月 2023年11月
0 100 200 300 400
1D 1 4000
我希望这有帮助!
国际大学学院
s=df.loc[df.state.isin(['完成','捆绑完成'])].drop('state',1)
s = s。 枢轴(*s。)
s.loc[s.sum(1).(2).index]
2023年8月 2023年9月 2023年10月 2023年11月
D 1000.0 2000.0 3000.0 4000.0
100.0 200.0 300.0 400.0
好了,今天的主题就讲到这里吧,不管如何,能帮到你我就很开心了,如果您觉得这篇文章写得不错,欢迎点赞和分享给身边的朋友。