我有一个如下所示的数据框
df
city val
0 London 3
1 London -1
2 London -1
3 Paris -5
4 Paris -2
5 Rome 2
6 Rome 2
我只想选择至少有一个 val < 0
的城市.我想要以下内容:
df
city val
0 London 3
1 London -1
2 London -1
3 Paris -5
4 Paris -2
最佳答案
将 loc
与 groupby
和 .transform(min)
一起使用:
>>> df.loc[df.groupby('city')['val'].transform(min).lt(0)]
city val
0 London 3
1 London -1
2 London -1
3 Paris -5
4 Paris -2
>>>
因为你是在0以下过滤,如果每组的最小值低于0就过滤。
关于Python:如何根据其他列的条件选择 Pandas 行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69222605/