資料量太大,節省記憶體的幾種方式

2021-08-19 19:13:22 字數 710 閱讀 3046

1、使用nrows和skip_rows來讀取。提前申明dtype和usecols,可以節省記憶體空間。

train_data=pd.read_csv(train_dir,skiprows=range(1,skip_rows),nrows=train_rows,dtype=dtypes,usecols=use_cols)
2、如果要兼顧記憶體和速度。可以使用reader來分塊閱讀。在建立reader的時候,並沒有真正讀取資料,等到for迴圈的時候才讀取。

train_reader=pd.read_csv(train_dir,iterator=true,chunksize=chunk_size,dtype=dtypes,usecols=use_cols)
在for迴圈中,才真正讀取資料。

for chunk in train_reader : 

train_data=pd.concat([train_data,chunk],ignore_index=true)

del test_data

gc.collect()

4、對資料進行型別轉換,及時減少記憶體。

train_data[col_name]=train_data[col_name].astype('uint8')

解決get提交資料量太大的問題

由於引數中是base64編碼後的資料,比較大,導致get請求失敗,提示資料太大。get最大是256b,post是2m。解決方式 使用偽post方式 上傳方法 function picupload var ocrimagesrc document.queryselector ocr img child...

資料量的表示方式

位元組 byte 8個二進位制位為乙個位元組 b 最常用的單位。計算機儲存單位一般用b,kb,mb,gb,tb,pb,eb,zb,yb,bb來表示,它們之間的關係是 1kb kilobyte 千位元組 1024b 1mb megabyte 兆位元組 簡稱 兆 1024kb 1gb gigabyte ...

請教,需要處理的資料量太大怎麼辦

請教,需要處理的資料量太大怎麼辦?情況是這樣的 資料庫中有幾個表,每個表記錄都超過10萬條,在查詢時需要交叉連線查詢 outer join 三個表,這就造成資料庫會生成一千萬條以上記錄的情況,所以這樣每查詢一次都需要兩秒以上時間.像這樣的查詢客戶每次請求都需要執行好幾百次,所以要等十幾分鐘才能結束....