為什么要和CSV再見(jiàn)?CSV 再見(jiàn)。其實(shí)也談不上徹底再見(jiàn)吧,日常還是要用的,這里再介紹一個(gè)更加高效的數(shù)據(jù)格式。Python 處理數(shù)據(jù)時(shí)保存和加載文件屬于日常操作了,尤其面對(duì)大數(shù)據(jù)量時(shí)我們一般都會(huì)保存成CSV 格式,而不是Excel 。一是因?yàn)?code>Excel有最大行數(shù)1048576的限制,二是文件占用空間更大,保存和加載速度很慢。CSV 沒(méi)有行數(shù)限制,相對(duì)輕便,但是面對(duì)大數(shù)據(jù)量時(shí)還是略顯拉夸,百萬(wàn)數(shù)據(jù)量?jī)?chǔ)存加載時(shí)也要等好久。。不過(guò)很多同學(xué)都借此機(jī)會(huì)抻抻懶腰、摸摸魚(yú),充分利用時(shí)間也不錯(cuò)CSV 并不是唯一的數(shù)據(jù)存儲(chǔ)格式。今天和大家介紹一個(gè)速度超快、更加輕量級(jí)的二進(jìn)制格式保存格式:feather。Feather是什么?Feather 是一種用于存儲(chǔ)數(shù)據(jù)幀的數(shù)據(jù)格式。它最初是為了 Python 和 R 之間快速交互而設(shè)計(jì)的,初衷很簡(jiǎn)單,就是盡可能高效地完成數(shù)據(jù)在內(nèi)存中轉(zhuǎn)換的效率。Feather 也不僅限于 Python 和 R 了,基本每種主流的編程語(yǔ)言中都可以用 Feather 文件。不過(guò),要說(shuō)明下,它的數(shù)據(jù)格式并不是為長(zhǎng)期存儲(chǔ)而設(shè)計(jì)的,一般的短期存儲(chǔ)。如何在Python中操作Feather?Python 中,可以通過(guò) pandas 或 Feather 兩種方式操作。首先需要安裝feather-format 。# pip Feather 、Numpy 和 pandas 來(lái)一起配合。數(shù)據(jù)集有 5 列和 1000 萬(wàn)行隨機(jī)數(shù)。
csv 的操作難度一個(gè)水平線,非常簡(jiǎn)單。DataFrame 直接to_feather 的 Feather 格式:df.to_feather('1M.feather') Feather 庫(kù)執(zhí)行相同操作的方法:
pandas 加載:df = pd.read_feather('1M.feather') Feather 加載:
和CSV的區(qū)別feather 和csv 的差距有多大。下圖顯示了上面本地保存 DataFrame 所需的時(shí)間:Feather (圖中的Native Feather )比 CSV 快了將近 150 倍左右。如果使用 pandas 處理 Feather 文件并沒(méi)有太大關(guān)系,但與 CSV 相比,速度的提高是非常顯著的。CSV 的讀取速度要慢得多。并且CSV 占用的磁盤(pán)空間也更大。CSV 文件占用的空間是 Feather 文件占用的空間的兩倍多。假如我們每天存儲(chǔ)千兆字節(jié)的數(shù)據(jù),那么選擇正確的文件格式至關(guān)重要。Feather 在這方面完全碾壓了 CSV 。Parquet ,也是一個(gè)可以替代CSV 的格式。結(jié)語(yǔ)CSV 吧。CSV 已經(jīng)用慣了,改變使用習(xí)慣還是挺難的。 |
|
來(lái)自: 西北望msm66g9f > 《培訓(xùn)》