0
我需要根據條件更新數據庫中的幾列。我正在使用numpy.where,並且寧願不改變它。Python用where條件更新多列。錯誤不能一起廣播
這是我能做什麼:
DB['Start'] = np.where(((DB['Start Date']<=time_delta) | (DB['Start Date'].isnull()) | (DB['Start Date'] == "")),DB['Start'],DB['Start Date'])
DB['End'] = np.where(((DB['Start Date']<=time_delta) | (DB['Start Date'].isnull()) | (DB['Start Date'] == "")),DB['End'],DB['End Date'])
等其他5列..但是這不會是計算效率。
將是不錯的有這樣的事情:
DB[['Start','End']] = np.where(((DB['Start Date']<=time_delta) | (DB['Start Date'].isnull()) | (DB['Start Date'] == "")),DB[['Start','End']],DB[['Start Date','End Date']])
但它沒有工作,提供了以下錯誤信息:「操作數不能與形狀(10)一起廣播(10,2) (10,2)」。
你有什麼建議如何有效地更新多列基於numpy.where條件?
添加樣品數據? – Divakar
不知道是否可以幫助,但這些是DB的列:TID,開始,結束,M,B,TaskID,開始日期,結束日期,機器,板。 對於這個數據我只是給這個測試放了一些隨機數據。不相關 – Filippo