我試圖做下面的代碼:使用df.loc []和在
df.loc[df['Column'] in list]=1
df.loc[df['Column'] not in list]=2
但我有著名的錯誤
一個系列的真值是不明確的。使用a.empty,a.bool(),a.item(),a.any()或a.all()。
因此,從我瞭解的這個錯誤我已經得到,它是與邏輯鏈接。我想知道的是有沒有一個特定的錯字來做我想要做的事情,或者我需要擴展我的整個列表(在我的情況下這將是相當醜陋和長):
df.loc[df[('Column']=='a') & (df['Column']=='b')]=1
df.loc[df[('Column']!='a') & (df['Column']!='b')]=2
所以錯字較短,表現如何?因爲我正在做一個140k行這些操作很多df –
@Mayeulsgc相對於什麼性能?你所選擇的答案甚至不是一個完整的答案。但是,'np.where'通常非常快。如果我有一個可行的替代解決方案,我會告訴你一個適當的比較。此外,未來的讀者選擇解決問題的答案更有益。 – piRSquared
我到目前爲止選擇的解決方案正在爲我工作,基於性能時間 –