[英]A faster way of building a Pandas.Dataframe from list of dictionaries than loop? [Python 3.9]
我有一個包含 5000 個字典的列表,其中每個字典有大約 40 個項目,我構建了一個非常慢的for
循環 - 它需要幾分鍾。
# symbol_list_final is the list of dictionaries
symbols_dataframe = pd.DataFrame([symbols_list_final[0]])
for i in range(len(symbols_list_final) - 1):
symbol_df_temp = pd.DataFrame([symbols_list_final[i + 1]])
symbols_dataframe = pd.concat((symbols_dataframe, symbol_df_temp), axis=1)
print(i)
有什么方法可以更快嗎?
編輯:慢得多,我的程序正在運行 rn,進行 4-5 次迭代需要 1 秒。
看起來您正在嘗試制定多個 dict 數據幀,然后將其連接成一個變量,其中包含您的 end_df。 首先,正確的方法是不要一直連接它們,只運行一次這樣的命令。 所以建議將 df 對象堆疊在列表中,並將它們連接起來
list_of_dfs = []
for i in list_dict:
list_of_dfs.append(pd.DataFrame(i))
所以pd.concat(list_of_dfs )
比在循環中一直重新定義變量更明智
現在,如果創建 df object 需要一段時間(給我們時間)。 好吧,還有其他方法可以解決此問題,例如庫 pyarrow(根據您的 cpu 可能會更快)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.