首頁 >後端開發 >Python教學 >如何在填入時間序列資料之前有效率地建立一個空 DataFrame?

如何在填入時間序列資料之前有效率地建立一個空 DataFrame?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-08 01:43:12757瀏覽

How Can I Efficiently Create an Empty DataFrame for Time-Series Data Before Filling It?

難題:建立一個空資料結構

您渴望建構一個 DataFrame 並隨後用時間序列資料填充它。最初,您設想一個空的 DataFrame,配有特定的列和時間戳,全部用零或 NaN 值裝飾。

當前方法:不優雅的解決方案

您當前的程式碼初始化在迭代資料以計算新值之前,具有全零列和時間戳行的DataFrame 。雖然這種方法達到了其目的,但感覺很麻煩,建議有更有效的解決方案。

首選解決方案:在清單中累積資料

最佳化此過程,謹慎的做法是避免 DataFrame 中的行增長。相反,將資料累積到清單中,然後在資料收集完成後初始化 DataFrame。列表更輕量,消耗更少的內存,並且有利於自動資料類型推斷和索引分配。

列表中累積的優點

  • 增強計算效率:追加到列表並在中建立DataFrame一次比迭代追加到空DataFrame 快得多。
  • 記憶體最佳化:清單佔用更少的內存,並且更容易追加和操作。
  • 自動Dtypes Inference: DataFrame 建構子自動根據資料推斷 dtypes加入了。
  • 同步索引建立:為產生的 DataFrame 自動產生 RangeIndex。

要避免的已棄用方法

某些在新手用戶中普遍存在的做法應該避免,因為它們效率低下並且細微差別:

  • 迭代追加或連接:這種方法有二次複雜性和資料類型問題。
  • 通過loc 追加:追加使用loc 會產生與迭代相同的內存重新分配問題append.
  • 空的NaN DataFrame: 使用NaN值建立DataFrame 會產生物件列,這會使資料操作變得複雜。最好提前分配一次內存,避免內存碎片

以上是如何在填入時間序列資料之前有效率地建立一個空 DataFrame?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn