回覆列表
-
1 # Excel到PowerBI
-
2 # 人工智慧機器人小葵
python
import pandas as pd
df = pd.read_csv("ur csv file path")
size = 10000#modify it to the size u want
num = int(df.shape[0]/size)
for i in range(0, num)
df.iloc[size*i:size*(i+1), :].to_excel("data"+str(i)+".xls")
df.iloc[size*num:, :].to_excel("data"+str(num)+".xls")
關於400W+CSV資料要拆成多個Excel檔案的問題,應該先考慮的是為什麼要拆分?是因為Excel工作表只支援100萬+的資料行,所以拆分?還是因為其他原因?
對於前者的情況比較常見,但是,實際上,現在用Excel來處理400w+行的資料,已經完全沒有問題了,因為Excel2016的新功能Power Query(Excel2010或Excel2013可到微軟官方下載相應的外掛)對資料的處理原則上並沒有限制,請參考高手對1億行資料的處理(因為Power Query支援各種資料來源,CSV也完全可以輕鬆解決):
Excel 一億行資料分析實踐(總結篇)高飛 PowerBI極客測試目的本次測試目的並非與其他資料分析方法對比優劣、而是嘗試介紹一種完全基於EXCEL的本地化大資料集處理方式。
分析人員常用的大資料處理方式
本次演示的方式
這種方式的優點
降低成本。減少工具間的切換成本,直接使用Excel作為儲存和分析工具。
展現靈活。展現端繼續使用Excel,發揮它靈活、自定義程度高的優勢。
便於交付。其他方式得到的結果為了便於交付,還要匯出為Excel,而現在整個分析流都在Excel內部完成。
結果可互動。PowerPivot相當於一個儲存了源資料的OLAP引擎,透過控制切片器等外部篩選條件,可以迅速、動態的檢視結果,使用其他方法,可能需要返回分析端改變計算條件重新匯出。
測試專案一:資料匯入和耗時向Excel匯入大資料,有兩種方式:
PowerPivot匯入,直接匯入,不支援資料轉換和清洗操作。
PowerQuery匯入,在匯入前可以對資料做預處理。
本次使用的測試資料集共有19列,有多列需要進行格式轉換和日期提取操作,使用第一種方式,需要匯入後在PowerPivot內部進行,使用方式二可以在載入前完成,很明顯的是,對於方式二,預處理步驟越多,載入時間會越長。
下圖展示了不同量級不同匯入方式的耗時情況(單位:秒)
為了直接對比PowerQuery和PowerPivot的載入效率,增加了一個*號方式,這種方式不對資料做任何清洗轉換,直接載入到模型,與PowerPivot步驟相同。
現象
對比前兩行結果,PowerQuery的資料匯入效率與PowerPivot不分伯仲。
PowerQuery沒有資料量的限制,而PowerPivot不到匯入超過2G的檔案。
清洗步驟和資料量的增多,都會顯著增加PowerQuery的匯入時間,比如一億行資料,即使三個簡單的清洗步驟,用時已經超過了30分鐘
結論PowerPivot匯入方式使用的是Access聯結器,受限於Access檔案本身的限制,不能匯入超過2G的資料,這也說明,PowerPivot資料儲存能力超過了Access。
PowerQuery是輕型ETL工具,處理大資料集效能不強(基於Excel版本的 PQ)。
如果嘗試使用Buffer函式快取資料,會發現這個快取過程非常漫長,實際上,Buffer函式並不適合快取大資料集,因為無法壓縮資料,記憶體可能會很快爆掉。
該測試還有包括資料的壓縮比、計算能力等等,希望詳細瞭解的可以參考我相關回答內容。
以上是關於接入400+萬CSV的資料的方法,首選考慮Power Query。如果您是因為其他的原因需要對CSV進行拆分,應該進一步根據您的實際情況來考慮具體方法,而不要首先侷限於用Access來做中間橋樑的方法。
最後,再來說說Access的問題,Access資料庫不支援超過2G的資料,因此,400+萬的資料,你先要看一下是否超過2G,如果超過了,就基本不用考慮了。
Power Query從入門到實戰80篇
Power Pivot基礎及Dax入門15篇讓我們一起學習,共同進步!