【发布时间】:2022-08-17 17:15:10
【问题描述】:
我有以下数据框:
data = {
\'Day\':[7,7,7,7,5,5,5,5],
\'Direction\': [\"North\",\"NorthEast\",\"NorthWest\",\"West\",\"East\",\"EastWest\",\"EastNorth\",\"West\"],
\'Bool\':[True,False,False,False,True,False,False,False],}
df = pd.DataFrame(data)
df.groupby([\"Day\"])
Day Direction Bool
0 7 North True
1 7 NorthEast False
2 7 NorthWest False
3 7 West False
4 5 East True
5 5 EastWest False
6 5 EastNorth False
7 5 West False
我想按天过滤每个组,字符串列df[\'Direction\'] 不包含在df[\'Direction\'] 的行中的行,其中df[\'Bool\'] 是True。
因此,例如在第一组中,df[\'Direction\']= \"West\" 它与df[\"direction\"]= \"North\" 不匹配(其中df[\"Bool\"]== True)所以它被丢弃了。 df[\"Direction\"]=\"NorthWest\" 是一个匹配项,因为字符串包含 North 所以它被保留了。
预期输出:
Day Direction Bool
0 7 North True
1 7 NorthEast False
2 7 NorthWest False
3 5 East True
4 5 EastWest False
5 5 EastNorth False
这些行并不总是具有相同的顺序,因此不能使用shift()。我想知道是否有一种快速的方法可以在不使用循环的情况下做到这一点。