回覆列表
  • 1 # Excel到PowerBI

    關於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篇

    讓我們一起學習,共同進步!

  • 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")

  • 中秋節和大豐收的關聯?
  • 手機老是自動關機,然後又自動開機.是什麼原因,有解決方法嗎?