我有一个名为buy\u groups的dict,它存储了一组SessionID,然后我希望看到dataframe sessiondata的元素在dict中出现SessionID。如果它存在,那么我将buy设置为1。数据帧是这样的
SessionID Buy
1 0
2 0
3 0
例如,如果dict buy\组中存在3,那么我将相关的buy设置为1。你知道吗
我写了一个矢量化的版本
SessionData.Buy[SessionData.SessionID.apply(lambda x: buy_groups.has_key(x))== True] = 1
大约需要5秒钟。你知道吗
相反,迭代需要更短的时间,比如2秒
for items in keys_value:
if buy_groups.has_key(items)== True:
SessionData.loc[SessionData['SessionID']==items,'Buy'] = 1
既然dataframe和dict都非常大,我怎样才能加快这个操作呢。你知道吗
提前谢谢!你知道吗
编辑:根据安迪·海登的建议,我改买了_组.键()团购,避免不必要的列表转换。你知道吗
我想试试这个。它使用布尔索引方法
相关问题 更多 >
编程相关推荐