Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用某些条件筛选数据_Python_Pandas - Fatal编程技术网

Python 使用某些条件筛选数据

Python 使用某些条件筛选数据,python,pandas,Python,Pandas,我有一个数据帧 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.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多个用户名。

你可以用你的字典
d
映射
用户名
,然后使用布尔索引,只选择那些有
分数
l
ess
t
的映射结果:

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
使用列表执行此操作

sample=[(1,0.0008)、(1,0.1)、(1,0.000009)、(2,0.2)]
d={1:0.05,2:0.01,3:0.02}
def检查(el):
如果el[1]