亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

基于行值的 Pandas 新列

基于行值的 Pandas 新列

一只名叫tom的貓 2023-04-25 17:39:15
我有一個數據框:    Item    SW_test HW_test QA_test0   PC      Pass    Pass    Pass1   Laptop  Fail    Fail    Pass2   Mouse   Pass    Pass    Fail我想創建一個最后一列,Pass如果所有測試都通過(不區分大小寫)以及Fail一個或多個測試失敗,它將給出。    Item    SW_test HW_test QA_test Final0   PC      Pass    Pass    Pass    Pass1   Laptop  Fail    Fail    Pass    Fail2   Mouse   Pass    Pass    Fail    Fail我怎樣才能df['Final']在熊貓中創造?
查看完整描述

4 回答

?
寶慕林4294392

TA貢獻2021條經驗 獲得超8個贊

eq搭配使用all:


df['Final'] = df.iloc[:,1:].eq('Pass').all(1)

#If case sensitive you can use

df['Final'] = df.iloc[:,1:].isin(['Pass','pass']).all(1)

#or

df['Final'] = df.iloc[:,1:].apply(lambda x: x.str.lower().eq('pass')).all(1)

#or

df['Final'] = df.iloc[:,1:].applymap(str.lower).eq('pass').all(1)

此外,您可以使用 map 而不是再次映射 True/False np.where:


df['Final'] = np.where(df['Final'], 'Pass', 'Fail')


查看完整回答
反對 回復 2023-04-25
?
慕少森

TA貢獻2019條經驗 獲得超9個贊

cols = ['SW_test', 'HW_test', 'QA_test']

df['Final'] = df[cols].eq('Pass').all(1)

    Item    SW_test HW_test QA_test Final

0   PC      Pass    Pass    Pass    Pass

1   Laptop  Fail    Fail    Pass    Fail

2   Mouse   Pass    Pass    Fail    Fail


查看完整回答
反對 回復 2023-04-25
?
楊__羊羊

TA貢獻1943條經驗 獲得超7個贊

您可以應用 lambda 函數來檢查條件成立的位置,然后可以用您想要的任何值替換 true/false 值。例如:


#create a dataframe

df = pd.DataFrame({'a':['Pass','Pass'], 'b':['Pass','Fail']})



    a       b

0   Pass    Pass

1   Pass    Fail


在條件成立的地方創建一個新列


df['c'] = df.apply(lambda row: row.a=='Pass' and  row.b=='Pass', axis=1)



    a       b       c

0   Pass    Pass    True

1   Pass    Fail    False


將 true/false 值替換為您要顯示的內容


df['c'] = df['c'].map({ True: 'Pass', False: 'Fail'})



    a       b       c

0   Pass    Pass    Pass

1   Pass    Fail    Fail


查看完整回答
反對 回復 2023-04-25
?
蠱毒傳說

TA貢獻1895條經驗 獲得超3個贊

# set column to "Pass" initially

df["Final"] = "Pass"


# set "Fail" rows

df.loc[(

    (df.loc[:, ["SW_test", "HW_test", "QA_test"]] == "Fail") | 

    (df.loc[:, ["SW_test", "HW_test", "QA_test"]] == "fail")

  ).any(axis = 1), "Final"] = "Fail"


查看完整回答
反對 回復 2023-04-25
  • 4 回答
  • 0 關注
  • 148 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號