Python 解决数据帧百分比计算的最佳方法
我有一个数据帧DF1:Python 解决数据帧百分比计算的最佳方法,python,pandas,Python,Pandas,我有一个数据帧DF1: ID Name Rank 1 A .99 2 B .8 3 C .8 和另一个数据帧DF2: ID Name Rank 4 D .999 2 B .8 3 C .8 8 H .79 10 J .78 11
ID Name Rank
1 A .99
2 B .8
3 C .8
和另一个数据帧DF2:
ID Name Rank
4 D .999
2 B .8
3 C .8
8 H .79
10 J .78
11 K .75
30 AA .7
50 CB .6
6 F .5
7 G .4
我想知道DF1中有多少在DF2的前20个百分位
因此,DF2中的前20个百分位是前两行,因为在这个简单的示例中,我们只有10行。因为只有B在第20百分位,那么3行中只有1行在那里,所以答案是33.33%
我知道我可以使用
.isin()
来查看在另一个中存在多少。但我对其余的一无所知。我不想求助于循环,因为我有数千种不同的DFs需要比较和提取百分比。如果我们讨论的是DF2中排名列的第20个百分位,那么我相信C也会包括在内
但是,如果需要,您可以使用下面的代码并进行修改
df2_20 = df2[df2.Rank >= df2.Rank.quantile(q=.8)]
df1.isin(df2_20).all(1).mean()
使用分位数+
+平均值
DF1.Rank.gt(DF2.Rank.quantile(.8)).mean()
0.33333333333333331
如果你能描述一下,这将是一个更好的答案。