男朋友又讓我給他處理資料,其中乙個資料大小有10g以上,我還需要把這個資料和其他資料進行匹配,然後分組統計得到一些資料。
之前簡簡單單用一下read_csv不能開啟這麼大的資料,我在尋找辦法。
因為要做匹配,所以我本來打算模組化把資料寫進來之後,然後再合併起來做。但是總是不行,報錯。最後可能要先分組處理完,再合併。因為這個資料裡應該有很多不用的資料,還是有希望。
中間看到有人說可以用dask包處理很大的檔案,很輕鬆。我看了一下,我覺得就算我讀入了,我後面很難操作,我還沒到能很快學會乙個新包的程度。我還是先好好把pandas用好吧。哭了。
想和男朋友討論一下,怎麼弄這個事,他說他不管過程,只要結果。我就是想和他說一說,然後把自己的思路梳理清楚,他都不聽。他說他老師和他交代這些事,也從來不管過程,給他結果就好了。
怎麼這樣,我一直覺得我和他的學術地位是平行的,我們是合作關係,現在他都騎到我頭上了。缺罵。
tsv檔案其實就是用tab做分隔符的檔案
uspatentcitation=pd.read_csv('f:/1/uspatentcitation.tsv', sep='\t', nrows=2,usecols=['patent_id', 'citation_id', 'date'])
和csv唯一的區別就是sep引數
nrows=2 #就是開啟前兩行看一下,我想知道這個資料裡有什麼指標,是否有一些指標不需要。
usecols=['patent_id', 'citation_id', 'date'] #只取其中三列看看我已經試了一些方法,都不能開啟這個大檔案,我決定先看一眼這個檔案有多少行。對後面模組化處理檔案心裡有個數。參考:
with open('f:/1/uspatentcitation.tsv', 'rb') as f:print(len(f.readlines()))
『rb』是因為之前用『r』出現以下編碼錯誤:「unicodedecodeerror: 'gbk' codec can't decode byte 0xb2 in position 6311: illegal multibyte sequence」
但是沒想到這個資料這麼頑劣,想看看有多少行都不行,給我報『memoryerror』
煩死人。
換了個辦法,沒想到看看有多少行,也得模組。
path1 = 'f:/1/uspatentcitation.tsv'file1 = open(path1)
uspatentcitation = pd.read_csv(path1, sep='\t',usecols=['patent_id', 'citation_id', 'date'], iterator=true)
count = 0
loop = true
while loop:
try:
user = uspatentcitation.get_chunk(100000)
count += user.shape[0]
except stopiteration:
break
print(count)
結果:108913836
一億條資料,無語。
不幹了,明天再說吧。
vuex的拆分使用 模組化處理
隨著專案越來越大,vuex中的內容也會越來越多,此時,將所有的store單一的存在乙個js檔案裡面,在維護和使用的時候都不太方便。這個時候,需要將store拆分開,使用state getters mutations actions單獨管理。1.建立目錄 在src目錄下建立store資料夾和六個js檔...
Python 大檔案處理
非記憶體資源可以使用with 在python中逐行讀取大檔案 在我們日常工作中,難免會有處理日誌檔案的時候,當檔案小的時候,基本不用當心什麼,直接用file.read 或readlines 就可以了,但是如果是將乙個10g大小的日誌檔案讀取,即檔案大於記憶體的大小,這麼處理就有問題了,會將整個檔案載...
Python 大檔案處理
非記憶體資源可以使用with 在我們日常工作中,難免會有處理日誌檔案的時候,當檔案小的時候,基本不用當心什麼,直接用file.read 或readlines 就可以了,但是如果是將乙個10g大小的日誌檔案讀取,即檔案大於記憶體的大小,這麼處理就有問題了,會將整個檔案載入到記憶體中從而造成memory...