如果要快速的讀寫表格,Pandas 并不是最好的選擇
最近在用 Pandas 讀取 csv 進行數據分析,好在數據量不是很大,頻率不是很高,使用起來得心用手,不得不說真的很方便。不過當數據量很大,你就要考慮讀寫的性能了,可以看下這個庫,留下印象,以備不時之需。
Pandas 有兩個競爭對手,一個是 Dask[1] 另一個是 DataTable[2],不過 Pandas 太牛逼了,其他兩個庫都提供了與 Pandas 的 DataFrame 相互轉換的方法。
它們都可以用來讀寫 Excel


有網友對此做了讀寫性能測試[3],先生成隨機數據集,其中包含可變行和三十列——包括字符串、浮點數和整數數據類型。每個測試重復了五次,取其平均值。CSV 的行數從 10 萬到 500 萬不等。
下面是測試結果:
讀取 csv


當行數少于一百萬時,Dask 和 Pandas 從 CSV 生成 Pandas DataFrame 的時間大致相同。
但是,當我們超過一百萬行時,Dask 的性能會變差,生成 Pandas DataFrame 所花費的時間要比 Pandas 本身多得多。
在這兩種情況下,Datatable 在 Pandas 中生成 DataFrame 所需的時間最少,提供高達 4 到 5 倍的加速。
寫入 csv


Dask 在將 Pandas DataFrame 存儲到 CSV 方面的表現都比 Pandas 差。而 DataTable 表現最好,比 Pandas 提高了近 8 倍。
最后的話
當數據量大時,用 DataTable。如果覺得有幫助,還請點個在看。
Dask: https://www.dask.org/get-started
[2]DataTable: https://datatable.readthedocs.io/en/latest/
[3]讀寫性能測試: https://towardsdatascience.com/its-time-to-say-goodbye-to-pd-read-csv-and-pd-to-csv-27fbc74e8
