[英]Python: any way to perform this “hybrid” split() on multi-lingual (e.g. Chinese & English) strings?
[英]What is the opposite of any() function in python, e.g. without any
假设我有一个看起来像这样的 df:
import pandas as pd
d = {'group': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B', 'C', 'C', 'C', 'C', 'C'],
'number': [0, 3, 2, 1, 2, 1, -2, 1, 2, 3, 4, 2, 1, -1, 0]}
df = pd.DataFrame(data=d)
df
group number
0 A 0
1 A 3
2 A 2
3 A 1
4 A 2
5 B 1
6 B -2
7 B 1
8 B 2
9 B 3
10 C 4
11 C 2
12 C 1
13 C -1
14 C 0
如果number
列中的一个值为负数,我想删除整个组。 我可以:
df.groupby('group').filter(lambda g: (g.number < 0).any())
但是,这给了我错误的输出,因为这将返回所有组,其中任何行在number
列中有负数。 见下文:
group number
5 B 1
6 B -2
7 B 1
8 B 2
9 B 3
10 C 4
11 C 2
12 C 1
13 C -1
14 C 0
如何更改此函数以使其返回number
列中没有任何负数的所有组。 输出应该是 A 组及其值。
使用布尔 NOT 运算符~
:
df.groupby('group').filter(lambda g: ~(g.number < 0).any())
或者使用德摩根定律检查all
值是否不匹配:
df.groupby('group').filter(lambda g: (g.number >= 0).all())
您可以使用 all 函数返回您期望的相反结果。 即它会做相反的事情。 只有当所有都为真时它才会返回 TRUE,否则它将返回 FALSE。
试试看嘛 :
not all(list)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.