@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 處理的資料量...