Python/Pandas:按筛选条件的数据帧子集

Python/Pandas:按筛选条件的数据帧子集,python,pandas,dataframe,filter,Python,Pandas,Dataframe,Filter,我有下面的数据框,它是比赛和结果的列表 Date R # Fin Win 0 11182017 1 1 2 0 1 11182017 1 2 1 5 2 11182017 1 3 3 0 3 11182017 2 1 2 0 4 11182017 2 2 1 10 5 11182017

我有下面的数据框,它是比赛和结果的列表

      Date       R   #   Fin  Win
0     11182017   1   1   2     0 
1     11182017   1   2   1     5   
2     11182017   1   3   3     0   
3     11182017   2   1   2     0   
4     11182017   2   2   1     10   
5     11182017   3   1   1     6    
6     11182017   3   2   2     0   
我只想返回Win列大于或等于10的比赛(所有参赛者,而不仅仅是10行)。下面的例子

      Date       R   #   Fin  Win
3     11182017   2   1   2     0   
4     11182017   2   2   1     10   

您可以使用
groupby
+
filter

df.groupby(['Date','R']).filter(lambda x : (x['Win']>=10).any())
Out[568]: 
       Date  R  #  Fin  Win
3  11182017  2  1    2    0
4  11182017  2  2    1   10
使用
变换的另一种解决方案

df[df.groupby(['Date','R']).Win.transform(lambda x : (x>=10).any())]
Out[573]: 
       Date  R  #  Fin  Win
3  11182017  2  1    2    0
4  11182017  2  2    1   10

Wen,TY的快速反应…你能解释一下代码的机制吗?df.groupby(['Date','R']).filter(lambda x:(x['Win']>=10.any())@Derek it group by Date and R,为组内所有赢项查找不小于10的任何值,如果其中任何一项匹配,保留全部,否则删除it@Derek如果这是你所需要的,你能考虑接受吗?