我的問題是我想基于兩個條件創建一個新列:如果型別 == 條件和名稱 == 抑郁癥。像這樣的兩個條件需要同時滿足。
以下是演示資料:
#for demonstration
import pandas as pd
example = {
"ID": [1, 2,3, 4, 5],
"type": ["condition", "temperature", "condition", "condition", "status"],
"name": ["depression", "high", "fatigue", "depression", "positive"],
}
#load into df:
example = pd.DataFrame(example)
print(example)
我期望得到的結果如下所示:
#for demonstration
import pandas as pd
result = {
"ID": [1, 2,3, 4, 5],
"type": ["condition", "temperature", "condition", "condition", "status"],
"name": ["depression", "high", "fatigue", "depression", "positive"],
"depression":["yes", "no","no","yes", "no"]
}
#load into df:
result = pd.DataFrame(result)
print(result)
我嘗試過的最接近解決方案的是:
example["depression"]= example[example.type=="condition"].name == "depression"
并作為輸出它給出

但這不是我想要的,因為它將其他人歸類為 NAN,并將 True 或 False 作為值。我想要的是上面的結果df。
你能幫我找出如何處理它嗎?提前致謝!
uj5u.com熱心網友回復:
你可以用它np.where來做到這一點:
example["depression"] = np.where(example.type.eq("condition") & example.name.eq("depression"), "yes", "no")
print(example)
-------------------------------------------------------
ID type name depression
0 1 condition depression yes
1 2 temperature high no
2 3 condition fatigue yes
3 4 condition depression yes
4 5 status positive no
-------------------------------------------------------
它為所有 True 條件回傳第二個引數 ('yes'),否則回傳第三個引數 ('no')。條件在第一個引數中指定。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/494876.html
下一篇:函式不回傳值,代碼正在運行
