簡體   English   中英

從字典列表中構建 Pandas.Dataframe 比循環更快的方法? [Python 3.9]

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM