我有两个数据框,一个是userId,性别和另一个数据框,有这些用户的在线活动 .
第一个数据框 (df1)
userId, gender
001, F
002, M
003, F
004, M
005, M
006, M
第二个数据框 (df2)
userId, itemClicked, ItemBought, date
001, 123182, 123212, 02/02/2016
003, 234256, 123182, 05/02/2016
005, 986834, 234256, 04/19/2016
004, 787663, 787663, 05/12/2016
020, 465738, 465738, 03/20/2016
004, 787223, 787663, 07/12/2016
我想通过查找基于userId的第一个数据框,将性别列添加到第二个数据框 . df2可能每个用户有多行,因为它是一个点击数据,同一用户可能点击了多个项目 .
这在MySql中很容易,但我想在熊猫中做到这一点 .
for index, row in df2.iterrows():
user_id = row['userId']
if user_id in df1['userId']:
t = df1.loc[df1['userId'] == user_id]
pdb.set_trace()
这是大熊猫这样一个任务的方式吗?
3 回答
你可以使用map:
如果只有列
gender
在两个DataFrame中相同,则可以省略merge和左连接,参数on
的另一个解决方案:Timings :
如果user_id是您可以使用的索引:
你可以试试这个: