2019-02-17
阅读量:
668
最快的pythonic方式循环字典以创建新的Pandas列
我有一个字典“c”,有30000个密钥和大约600000个唯一值(每个密钥大约20个唯一值)
我想创建一个新的pandas系列“'DOC_PORTL_ID'”,从列“'image_keys'”的每一行获取一个样本值,然后在我的字典中查找它的键并返回。所以我写了一个这样的函数:
def find_match(row, c):
for key, val in c.items():
for item in val:
if item == row['image_keys']:
return key
然后我使用.apply创建我的新列,如:
df_image_keys['DOC_PORTL_ID'] = df_image_keys.apply(lambda x: find_match(x, c), axis =1)
这需要很长时间。我想知道我是否可以改进我的代码段以使其更快。
解决办法:
reverse_dict = {val: key for key, values in c.items() for val in values}
df_image_keys['DOC_PORTL_ID'] = df_image_keys['image_keys'].map(reverse_dict)






评论(0)


暂无数据
推荐帖子
0条评论
0条评论
1条评论