使用pandas切分超大資料檔案

2021-10-02 06:43:01 字數 1354 閱讀 5525

@toc

我現在需要將乙個6.33gb的sql檔案上傳到資料庫,但檔案太大,上傳過程太慢,所以我選擇用pandas將檔案切分。

import pandas as pd
第乙個引數不用說了。

header=none是讓它沒有列名,不然它就自動取我資料的第一行為列名了。

sep是設定資料分隔符。我的資料是換行符分隔所以設定的\n,根據需求也可以設定成空格、逗號之類的,具體**可以自己查一查。

chunksize這個引數是設定迭代數量,我這裡設定的是200,0000,意思就是每200,000行迭代一次。

iterator設定是否迭代,true為是,false為否。

index_col不加這個引數的話,儲存的檔案會多一列索引,所以我將其設定為0。

# 將檔案內資料設定為每200,000行迭代一次

reader = pd.read_table(r'c:\users\double\desktop\da_dnbzc.sql'

, header=

none

, sep=

'\n'

, chunksize=

2000000

, iterator=

true

, index_col=

0)

# 迴圈儲存檔案

i =0

for chunk in reader:

file_name =

'w:\\da_dnbzc\\da_dnbzc'

+str

(i)+

'.csv'

print

('正在儲存第{}個檔案...'

.format

(i))

chunk.to_csv(file_name, encoding=

'utf-8'

) i +=

1

這樣就完事啦~~~

來看看目標資料夾裡的切分後的檔案吧:

有個缺點就是他儲存出來的csv檔案裡自帶索引,所以檔案多的話可以再寫個迴圈把第一列刪掉,如果不多可以直接在excel裡手動刪除。

pandas 大資料處理

準備 檢視所佔記憶體函式 def mem usage pandas obj if isinstance pandas obj,pd.dataframe usage b pandas obj.memory usage deep true sum else usage b pandas obj.memo...

Python使用pandas處理CSV檔案

python中有許多方便的庫可以用來進行資料處理,尤其是numpy和pandas,再搭配matplot畫圖專用模組,功能十分強大。csv comma separated values 格式的檔案是指以純文字形式儲存的 資料,這意味著不能簡單的使用excel 工具進行處理,而且excel 處理的資料量...

Python使用pandas處理CSV檔案

python中有許多方便的庫可以用來進行資料處理,尤其是numpy和pandas,再搭配matplot畫圖專用模組,功能十分強大。csv comma separated values 格式的檔案是指以純文字形式儲存的 資料,這意味著不能簡單的使用excel 工具進行處理,而且excel 處理的資料量...