我试图做下面的代码:使用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
我到目前为止选择的解决方案正在为我工作,基于性能时间 –