![](/img/trans.png)
[英]How to use pandas.Series.str.contains to return true value for row after row that contains the given condition
[英]How to return a value (number) if pandas contains condition is true?
如果包含條件為true,如何單獨返回一個值?
searchfor = ['dormant', 'open']]
flag_one = []
flag_one = data['Status'].str.contains('|'.join(searchfor), na=False)
現在,如果找到則返回“ True”,如果找不到則返回“ False”。 如何為“ True”和“ False”分配一個(數字)值?
使用map
data['Status'].str.contains('|'.join(searchfor), na=False).map({True:111,False:222})
我想這就是你想要的
if data['Status'].str.contains('|'.join(searchfor), na=False):
flag_one = 1.0
else:
flag_one = -1.0
在評估您的狀況后,只需重新分配flag_one
:
if flag_one:
flag_one = 3 # or any value you want for True
else:
flag_one = 34 # or any value you want for False
或者,您可以進入contains
函數的源代碼並對其進行更改,但我不建議這樣做。
使用numpy.where
:
searchfor = ['dormant', 'open']
x = 10
y = 20
data['new_column'] = numpy.where(data['Status'].isin(searchfor),x,y)
當狀態為休眠或打開時, new_column
將包含10,否則將包含20。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.