我有一个DataFrame B,它的列为:id_number, performance, min_value, max_value
。
B
id_number | perfomance | min_value | max_value
12 | A | 400 | 700
4 | B | 1000 |1250
89 | C |1 | 30
我想通过以下方式创建字典:
for idx, r in B.iterrows():
for i in range(r['min_value'], r['max_value'] + 1):
dic[i] = r[id_number]
(请注意,id_number不是唯一的。)
我的数据框B非常大(> 5M条记录),并且最小值和最大值之间的范围通常很大(数千),因此整个过程需要很长时间。有没有办法更快地实现上述字典创建?
答案 0 :(得分:0)
尝试一下:
dic = (df.apply(lambda x: pd.Series(x['id_number'],
index = np.arange(x['min_value'], x['max_value']+1)),
axis=1)
.stack()
.reset_index(level=0, drop=True)
.to_dict())