熊猫数据框过滤多个条件

五月

我有以下数据框

df = pd.DataFrame([[1990,7,1000],[1990,8,2500],[1990,9,2500],[1990,9,1500],[1991,1,250],[1991,2,350],[1991,3,350],[1991,7,450]], columns = ['year','month','data1'])

year    month    data1
1990      7      1000
1990      8      2500
1990      9      2500
1990      9      1500
1991      1      250
1991      2      350
1991      3      350
1991      7      450

我想过滤数据,使其不包含月份/年份为07 / 1990、08 / 1990和01/1991的数据。我可以为每个组合每月/每年执行以下操作:

df = df.loc[(df.year != 1990) | (df.month != 7)]

但是,如果月/年有很多组合,则效率不高。有没有更有效的方法?

非常感谢。

丹妮·梅塞乔(Dani Mesejo)

您可以这样做:

mask = ~df[['year', 'month']].apply(tuple, 1).isin([(1990, 7), (1990, 8), (1991, 1)])
print(df[mask])

输出量

   year  month  data1
2  1990      9   2500
3  1990      9   1500
5  1991      2    350
6  1991      3    350
7  1991      7    450

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章