我正在嘗試分析從 csv 檔案中獲取的調查資料。本次調查的特殊性是有“條件欄位”,例如當您對第一個問題回答“是”時,您沒有看到第三個問題的第二個問題。所以我的資料框有空白,而不是填充。我正在嘗試使用不同的引數過濾答案。
這里有一個例子:
df = pd.DataFrame({
'q1 : do you pratice magic ?' : ['yes', 'no', 'no', 'not sure', 'yes', 'no'],
'q2 : What is your wizard level ?' : [8,np.nan,np.nan,np.nan,2,np.nan],
'q3 : Have you special abilities ?' : [np.nan,np.nan,np.nan,'yes',np.nan,np.nan],
'q4 : Are you a muggle ?' : [np.nan,'yes','don\'t know',np.nan,np.nan,'yes'],
'q5 : How old are you ?' : [20,14,48,27,36,45]
})
對于 q1,您可以選擇 3 個答案來滿足下一個問題的條件,使用以下模式:
如果 q1 : 是 -> q2, q5
如果 q1 : 不確定 -> q3,q5
如果 q1 : 否 -> q4, q5
在任何情況下,每個人都聚集到 q5。
如何獲得具體回答 q1“否”且少于 40 的人?
uj5u.com熱心網友回復:
如果我理解正確,您可以使用布爾索引:
mask = df["q1 : do you pratice magic ?"].eq("no") & df["q5 : How old are you ?"].lt(40)
print(df[mask])
印刷:
q1 : do you pratice magic ? q2 : What is your wizard level ? q3 : Have you special abilities ? q4 : Are you a muggle ? q5 : How old are you ?
1 no NaN NaN yes 14
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/526505.html
