我有一个叫做buy_groups的字典,它存储了一组SessionID,然后我想看到数据框的元素SesssionData在字典中出现了一个SessionID。如果它存在,则我设置购买为1的数据帧这样如何在这种情况下加快熊猫(查询字典)?
SessionID Buy
1 0
2 0
3 0
例如,如果存在于字典buy_groups 3,然后我设置相关买入= 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
我如何可以加快这一操作,因为两个数据帧和字典是非常大的。
在此先感谢!
对不起,我仍然对你想要的东西感到困惑。你所要做的就是将所有SessionID中的'Buy'设置为1,这些都是buy_groups中的键?或者对于(1)buy_groups中的键和(2)keys_value(不管那是什么)中的所有SessionID? – DSM 2015-02-11 03:55:07
对不起,我想把'买'设置为1,所有SessionIDs都是buy_groups中的键。 – 2015-02-11 15:55:46