我有一本字典
d={1: [3, 6, 9], 3: [1, 6, 9], 6: [1, 3, 9], 9: [1, 3, 6], 2: [4, 7], 4: [10, 7], 7: [2, 4], 5: [8, 10], 8: [5, 10], 10: [5, 8, 11], 11: [10, 8, 3]}
以及一系列
x=pd.Series([3,8,9])
对于list的每个值,我想在dictionary中找到相应的值。你知道吗
我正在使用for循环
for i in range(len(x)):
n=d[x.iloc[i]]
预期输出为
[1, 3, 6]
但是,由于数据有1.6米的行,for循环正在减慢这个过程。我觉得地图拉姆达法,或者列表理解法可以提高速度。但我在这两方面都有困难,我试过这样的方法
n=[d[x] for i in range(len(x))]
,但它不起作用。有什么办法能达到目标吗
IIUC公司
如果需要列表
这应该比使用所有iloc更快:
对于这次1000个数字的列表:147µs±7.51µs每个循环(7次运行的平均值±标准偏差,每个10000个循环)
当OPs与ILOC循环时: 每个回路33.8 ms±1.35 ms(平均±标准偏差7次,每个回路10次)
相关问题 更多 >
编程相关推荐