【发布时间】:2020-12-29 21:18:43
【问题描述】:
我有一个数据框,其中 id 和 date 作为索引,ShopData 作为列,如下所示: shopdata
如您所见,有一个以“ValueType”和“Value”为键的字典列表。这个想法是如果“ValueType”等于“coffee”,则提取“Value”键下的数据。然后我需要数据来做一些计算。
我下面的代码可以运行,但速度很慢:
ids = data.index.get_level_values(0)
df = pd.DataFrame(float(0),index = ids , columns=['coffeedata'] )
for i in range(len(ids)):
for item in data.loc[ids[i], 'ShopData'][0] :
if item["ValueType"] == 'coffee':
df.iloc[i]['coffeedata']= float(item['Value'] )
瓶颈在哪里,知道如何让代码运行得更快吗?谢谢!
【问题讨论】:
-
阅读:How to Ask
-
能否请您使您正在使用的数据框可重现?
标签: python pandas list dictionary