數(shù)據(jù)處理那些事|如何讀取一個128G的超大csv文件?

首發(fā)于:https://mp.weixin.qq.com/s/mzLgFV6Nq67mjY9_kjiAqw
內容導航
契機
科普:csv是什么?
EasyCsv有什么用?
1 csv文件預覽
2 csv文件轉換
3 csv文件分割
EasyCsv為什么可以快速查看超大csv文件?
EasyCsv如何下載?
契機
今年4月~6月根據(jù)人文幫公眾號讀者的贊助,獲取到了2023年全國的興趣點數(shù)據(jù)。
2023年全國34個省份的poi數(shù)據(jù)累計近6900萬,是以csv格式的文件分省份存儲的。

分享給一些讀者后,反饋數(shù)據(jù)太大了,無法讀取。因為csv格式的文件遠沒有Excel格式的文件那么常見,不是所有的同學都會讀取這種格式的文件。另一方面,我平時做一些數(shù)據(jù)處理類的工作時,也偶而會需要讀取超級大的CSV文件,比如說下面截圖中的這個csv文件,有128G,如果直接用第三方工具讀取,基本就會導致工具崩潰。

為了解決以上這些問題,在業(yè)余時間寫了一個csv數(shù)據(jù)處理與轉換工具:EasyCsv,不需要會員,免費使用。其實很早就前就寫好了,最近在忙裝修的事,心力交瘁,一直沒有發(fā)布,今天下午處理水管漏水、水管改造和門窗安裝的事,請假了半天,抽空完善了這篇文章,順便把這個工具分享給大家。
科普:csv是什么?
鑒于公眾號的讀者很多是在校同學,在開始之前,先來科普一下什么csv格式的數(shù)據(jù)文件。我們平常使用最多的數(shù)據(jù)文件就是Excel了,如果你使用Excel處理過數(shù)據(jù),你就會發(fā)現(xiàn),對于Excel 97-2003 (.xls),一張表最多只能存儲65536行,對于Excel 2007+ (.xlsx),最多可以存儲1048576行。
于是問題來了,那如果你要存儲超過1048576行的數(shù)據(jù)用什么文件呢?
csv格式的文件就是這個問題的解決方案之一。CSV是Comma-Separated Values的簡稱,是一種常見的文本文件格式,用于存儲和交換簡單的表格數(shù)據(jù)。CSV文件由純文本組成,使用逗號(或其他分隔符)將不同的字段分隔開來。在CSV文件中,每一行表示一個數(shù)據(jù)記錄,每個字段被逗號分隔。每個字段可以是文字、數(shù)字或其他類型的數(shù)據(jù)。CSV文件通常不包含任何格式化或樣式信息,僅用于保存原始數(shù)據(jù)。
EasyCsv有什么用?
簡單來說,EasyCsv是一個CSV文件的讀取與轉換工具,核心功能有三個:
1 csv文件預覽
如果你像我一樣,偶而需要查看超級大的csv文件,比如說上面示例中的那個128G的csv文件,你可以使用這個工具的預覽模式,使用極小內存只需要不到1秒就可以快速實現(xiàn)文件預覽。

2 csv文件轉換
你可以將csv文件一鍵轉換并導出為Excel文件或者Shapefile文件。
注意:如果要導出為Shapefile文件,你需要指定位置列名(由經度和緯度組成的列)。

3 csv文件分割
根據(jù) CSV 文件中的某一列的特定值,將數(shù)據(jù)分割成多個子文件,支持分割成Excel文件或者csv文件。例如,我這里有一個北京市poi的示例文件,里面有一列名為【大類】,記錄著各個行業(yè)的poi行業(yè)大類,如交通設施、生活服務、酒店住宿等。如果想把這個csv文件根據(jù)行業(yè)大類分割,那么這個工具也能一鍵實現(xiàn)。

EasyCsv為什么可以快速查看超大csv文件?
多講一下,給有編程基礎的同學提供一個參考。其實很簡單,csv格式的文件你可以理解為是一個小型數(shù)據(jù)庫,在讀取時可以只讀取指定的行數(shù)。例如在這個工具里我設置為只讀取前1000行,所以可以在1秒內高速讀取并預覽。

EasyCsv如何下載?
關注人文幫公眾號,回復以下任一關鍵詞,即可獲取最新的下載鏈接:
csv
easycsv
