如何使用从数据框输入的值范围创建字典?

时间:2020-03-24 20:26:32

标签: python pandas dictionary

我有一个数据框,其中包含用于分类的一系列值。看起来像这样:

df = pd.DataFrame(columns=['Place','lower limit','upper limit'],data=[['NY',0,1000],['MS',1001,2000],['AL',2001,3000],['BS',3001,4000],['CL',4001,5000],['FL',5001,6000]])
df

我需要创建一个字典,字典的位置和范围分别由place,下限和上限给出。像这样:

dictionary =  dict({'NY':range(0,1000), 'MS':range(1001,2000)})

但是,由于我的数据帧真的很长,我无法手动完成。我如何才能自动根据数据框上的信息创建字典的过程?

对不起,如果以前已经回答过这个问题,但是我到处都是,没找到任何东西。

注意:之所以需要字典,是因为之后我将不得不对一个很长的文件进行分类,而字典是最快的方法。 预先感谢。

2 个答案:

答案 0 :(得分:2)

您可以使用df.to_dict和dict理解:

{k: range(v['lower limit'], v['upper limit'])
 for k, v in df.set_index('Place').to_dict(orient='index').items()}

答案 1 :(得分:1)

仅是通过列表理解来创建字典:

 {a:range(b,c) for a,b,c in zip(df['Place'], df['lower limit'], df['upper limit'])}
相关问题