基于聚合值的熊猫过滤器

时间:2018-07-25 01:16:01

标签: python pandas filter pandas-groupby

我正在使用以下数据:Kaggle NFL Data。我正在尝试根据每个玩家的传球尝试次数过滤数据。 将所有数据读入变量all_nfl_data。然后,我想这样做:

all_pass_plays = all_nfl_data[all_nfl_data.PlayType == 'Pass']
passers_under_100 = all_pass_plays.groupby('Passer').transform('size') <= 100

我无法弄清楚如何根据上述逻辑正确过滤。我正在尝试筛选总尝试次数少于100次的球员。目标是根据此数字过滤完整的数据帧,而不仅仅是返回播放器名称本身。感谢帮助:)

2 个答案:

答案 0 :(得分:1)

您可以使用library(lubridate) parse_date_time(hm("18 10"), "HMS") #[1] "0000-01-01 18:10:00 UTC" parse_date_time(hm("18 09"), "HMS") #[1] NA #Warning message: #All formats failed to parse. No formats found. (PS:尝试修复您的代码)

isin

答案 1 :(得分:1)

单行替代解决方案

passers_under_100 = all_pass_plays.groupby('Passer').filter(lambda x : x['Passer'].size <= 100)

相应的文档:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.core.groupby.DataFrameGroupBy.filter.html