在这种情况下,如何加速pandas(查询dict)?

2024-03-28 09:45:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个名为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都非常大,我怎样才能加快这个操作呢。你知道吗

提前谢谢!你知道吗


Tags: 数据keytrue元素dataframeitemsbuy矢量化
1条回答
网友
1楼 · 发布于 2024-03-28 09:45:32

编辑:根据安迪·海登的建议,我改买了_组.键()团购,避免不必要的列表转换。你知道吗

我想试试这个。它使用布尔索引方法

rowindex = SessionData['SessionID'].isin(buy_groups)    
SessionData[rowindex,'Buy'] = 1

相关问题 更多 >