我有以下两个框架:
框架1:
id
0 111-111-111
1 111-111-222
2 222-222-222
3 333-333-333
框架2:
^{pr2}$我有一个lambda函数,它将frame1.id
映射到frame2.id
:
id_map = lambda x: x[:7]
我的目标是在这两个表之间执行一个内部连接,但是要让id通过lambda。因此输出为:
id data
0 111-111-111 ones
1 111-111-222 ones
2 333-333-333 threes
我想出了一个相当不优雅的解决方案,几乎是完成了我要做的事情,但是当内部连接删除行时,它就会一团糟:
# Save a copy the original ids of frame1
frame1_ids = frame1['id'].copy()
# Apply the id change to frame1
frame1['id'] = frame1['id'].apply(id_map)
# Merge
frame1 = frame1.merge(frame2, how='inner', on='id')
# Set the ids back to what they originally were
frame1['id'] = frame1_ids
有没有一个优雅的解决方案?在
可以使用
assign
创建要加入的伪id列(newid):输出:
^{pr2}$相关问题 更多 >
编程相关推荐