我想读取每一行数据帧并将它们添加到字典中。
以下代码需要18秒才能运行。数据框大约有150000行。 vehicledid和engineconfigid是数值。
engineconfigid = {}
for index, row in data_engineconfig.iterrows():
engineconfigid.update({row['vehicleid-h']:row['engineconfigid-h']})
但是,以下代码需要数小时。唯一的区别是需要添加更多值,而某些值是字符串。是什么导致了两条线之间的差异?字符串不大。我的程序以20%CPU(单核)运行,仅使用60MB RAM。
for index, row in data_enginebase.iterrows():
enginebase.update({row['enginebaseid-f']:{'liter':row['liter-f'],
'cc':row['cc-f'],'cid':row['cid-f'],
'cylinders-f':row['cylinders-f']}})
答案 0 :(得分:1)
您可以尝试使用set_index
。而不是迭代行,这应该给出更好的结果:
# answer 1
engineconfigid = data_engineconfig.set_index('vehicleid-h')['engineconfigid-h'].to_dict()
# answer 2
data_engineconfig.to_dict(orient='index')