根据pandas数据框创建字典,其中值是索引

时间:2020-09-28 09:10:46

标签: python pandas dictionary

我有一个像这样的熊猫数据框:

A
a       
b
c
d

我正在尝试创建一个看起来像这样的python字典:

df_dict = {'a':0, 'b':1, 'c':2, 'd':3}

我尝试过的事情:

df.reset_index(inplace=True)
df = {x : y for x in df['A'] for y in df['index']}

但是df的长度为75k,现在要花点时间,甚至不确定是否会产生我需要的结果。是否有一种简洁,快速的方法来实现这一目标?

3 个答案:

答案 0 :(得分:2)

dictziprange一起使用:

d = dict(zip(df['A'], range(len(df))))
print (d)
{'a': 0, 'b': 1, 'c': 2, 'd': 3}

答案 1 :(得分:1)

您可以这样做:

#creating example dataframe with 75 000 rows
import uuid
df = pd.DataFrame({"col": [str(uuid.uuid4()) for _ in range(75000) ] } )  

#your bit
{ i:v for i,v in  df.reset_index().values }

它在几秒钟内运行。

答案 2 :(得分:1)

您可以将系列转换为列表并使用枚举:

lst = { x: i for i, x in enumerate(df['A'].tolist()) }