我有一個資料框,當僅滿足特定條件時,我試圖在其中創建一個新列。
例如,我有這行代碼,我想對其進行更改以顯示不同的輸出。
data['new_filtered'] = np.where(((data.movie == data.genre) & (data.length > movie_average)),1,0)
對于 True 和 False,回傳值不是 1 和 0,data.movie而是我希望它顯示 5 個索引位置。
例如,如果在第 5 行滿足此條件,我希望回傳為第 10 行的電影。我過去僅使用 for 回圈完成此操作并將該回傳值附加到串列并將其添加到資料幀。我只是想知道 np.where() 是否可以做到這一點。
uj5u.com熱心網友回復:
嘗試類似:
mask = ((data.movie == data.genre) & (data.length > movie_average))
data['new_filtered'] = np.where(mask, data.movie.shift(-5), 0)
# ^^^^^^^^^^^^^^^^^^^^
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/397670.html
