使用某些条件过滤数据

我有一个数据框

username   score
1          0.0008
1          0.1
1          0.000009
2          0.2
2          0.0098
2          0.7
3          0.99
3          0.019
3          0.0001

我需要使用该条件进行过滤

d = {1: 0.05, 2: 0.01, 3: 0.02}

所以我需要为每个客户端提取所有小于 dict 值的值。

期望输出:

username   score
1          0.0008
1          0.000009
2          0.0098
3          0.019
3          0.0001

如何快速过滤?我知道可以使用循环来做到这一点,但我有一个包含 100 多个用户名的庞大数据集。

回答

你可以mapusername你的字典d,然后用布尔检索,只选择那些具有score lESSt汉映射结果:

df[df.score.lt(df.username.map(d))]

要得到

   username     score
0         1  0.000800
2         1  0.000009
4         2  0.009800
7         3  0.019000
8         3  0.000100


以上是使用某些条件过滤数据的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>