5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Power Queryで加工した104万行超のデータを、csv出力する方法

Last updated at Posted at 2022-03-04

はじめに

Power Queryで加工したデータをcsv形式でエクスポートしたいとき、
104万行(正確には1,048,576行)以内であれば、
「デスクトップ版ExcelのPower Queryで加工→Excelワークシートにテーブル出力→csvで保存」で対応可能である。
一方で、104万行を超える場合には、上記のやり方では対応できない。

この問題に対する主な解決策を以下にてまとめた。

解決策1:DAX Studioを利用する

DAX Studioに内蔵されているcsv出力機能を利用する。
以下記事にて、わかりやすくまとめられている。

解決策2:Power BI DesktopでPower QueryとRを併用する

Power BI Desktopでは、Power Query Editor内でRを利用することができる。
したがって、Rのcsv出力関数 write.table() の利用によって、csv出力が可能である。

スクリプト例
# 'dataset' はこのスクリプトの入力データを保持しています
write.table(dataset,"フォルダパス/ファイル名.csv", quote=T, row.names=F, col.names=T, sep=",", append=F)

補足

上記ブログのとおりに進めると、1列目にレコード番号が付与される。
もし必要ない場合は、以下記事を参考に row.names=FALSE を追記すると良い。

解決策3:Power BI DesktopでPower QueryとPythonを併用する

Power BI Desktopでは、Power Query Editor内でPythonを利用することができる。
したがって、Pythonのcsv出力関数 to_csv() の利用によって、csv出力が可能である。

スクリプト例
# 'dataset' はこのスクリプトの入力データを保持しています
import pandas as pd
file = pd.DataFrame(dataset)
file.to_csv('フォルダパス/ファイル名.csv', index=False)

解決策同士の比較

処理速度

2つの異なるサンプルデータで検証したところ、処理速度の順位が逆転したので、現時点では結論不明。
判明でき次第追記する。
(個人的な推測では、データ量が多くなればなるほどPython・R(特にPython)が相対的に速くなるように思われる。)

難易度

Pythonは事前に環境構築(Pythonのインストールと、Pandas等のライブラリのインストール)が必要。
したがって、Pythonを含むプログラミング言語未経験者には少しハードルが高いと思われる。
(DAX StudioやRは、本記事のケースではインストールするだけで済む。)

結論

DAX Studioが最も使いはじめやすいと思われるので、
まずはDAX Studioで試してみて、処理速度に難があると判断した場合にRやPythonを試すのが良さそう。

5
4
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?