![](/img/trans.png)
[英]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.