我有一个像这样的熊猫数据框:
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,现在要花点时间,甚至不确定是否会产生我需要的结果。是否有一种简洁,快速的方法来实现这一目标?
答案 0 :(得分:2)
将dict
与zip
和range
一起使用:
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()) }