9.7K Views
February 25, 25
スライド概要
connpass LT登壇資料
https://findy.connpass.com/event/343059/
自動車部品メーカーで制御系ソフトウェアエンジニアを10年以上勤めた後、AIエンジニア兼データサイエンティストとしてベンチャー企業へ転職した30代男性。 個人投資家としても活動中。主に国内株式と米国株式。 2児の父であり、家事・育児に奮闘中。 自由と豊かさと技術をこよなく愛する。
これからのデータ分析 はPandasにDuckDBも 併用して高速化しよう という話 ver2025 2025/2/27 よねすけ(@ebichizu39)
自己紹介 よねすけ(@ebichizu39) 所属: 千株式会社 ものづくり部CTO室 職種: MLエンジニア 得意そうな分野(経歴): 自動車工学、制御開発、データ分析、自動化ツール作成、ML実装
本日のお題 お題:DuckDBの魅力について、DS/ML目線で語ってみる https://zenn.dev/aidemy/articles/3aeea1470f1535
本日のお題 どんな人向け? ◆まだDuckDBを使ったことがない人 ◆PandasやPolarsを普段から使ってる人 ◆データサイエンティスト ◆MLエンジニア ◆データアナリスト ◆データエンジニア DuckDBいいじゃん!今日から使ってみようかな! (ってなったらいいなぁ)
どんなブログだった? このブログのあらまし ◆大容量なデータのデータ分析業務は動作が重くて時間かかる!高速化したい! ◆PygWalkerで使われているDuckDBってなんだろう、使ってみよう! ◆PythonやPandasとの相性良さそう! ◆100万行超えのCSVファイル(742MB)でタイムアタック! ◆Pandasが約4.5secに対して、DuckDBが約1.5sec! ◆DuckDBを併用してデータ分析業務を効率よく行おう! 以上
ver2023 PygWalker : Tablau風なEDAツール(DuckDB内蔵)
検証用コード Pandas:約4.5sec DuckDB:約1.5sec
DuckDBの魅力 ①導入のしやすさ ②データ効率(処理速度)の高さ • 大容量なデータのデータ分析業務は動作が重くて時間かかる!高速化したい! • Polarsより早いと評判のDuckDBがあるらしい、使ってみよう! • PythonやPandasとの相性良さそう! • 100万行超えのCSVファイル(742MB) でタイムアタックや! • Pandasが約4.5secに対して、DuckDBが約1.5sec! • DuckDBを併用してデータ分析業務を素早く効率よく行おう! 以上
導入のしやすさ ◆pipインストールですぐ使える! pip install pandas duckdb ◆DataFrameと同じように書ける! Pandas: read_df = pd.read_csv("csv/diabetes_data.csv") DuckDB: read_df = duckdb.read_csv("csv/diabetes_data.csv").to_df() ◆公式ドキュメントも充実! https://duckdb.org/docs/api/python/overview.html
データ効率(処理速度)の高さ https://duckdblabs.github.io/db-benchmark/
注意点1:データ型の管理 DuckDB Pandas 説明 INTEGER int64 整数型。Pandasのint64に対応。 BIGINT int64 大きな整数型。Pandasでもint64で扱われます。 DOUBLE float64 浮動小数点数型。Pandasではfloat64に対応。 VARCHAR object (str) 文字列型。Pandasではobject型として読み込まれます。 BOOLEAN bool 論理型。Pandasのboolに対応。 DATE datetime64[ns] 日付型。Pandasのdatetime64[ns]にマッピングされます。 TIMESTAMP datetime64[ns] タイムスタンプ型。Pandasでもdatetime64[ns]として扱われます。 NULL NaN(Numpy float) 欠損値型。PandasのNaN(非数)に変換。
注意点2:常に速い、わけではない 今回のブログコードで、データセットを小さくしながらテスト 【結果】 20MB以下のデータに対しては、Pandasの方が速い! (※環境によって変動する場合があります)
ver2025
データ分析なんて、LLMがやってくれるでしょ?
LLMと一緒にやろうよ!!
ver2025 Pandas/DuckDBともに、より速くなっている! ver2023 ver2025 Pandas 4.551sec 2.516sec(約35%UP) DuckDB 1.511sec 0.592sec(約61%UP)
ver2025 ver2023との違いは?
ver2025 ver2025
ver2025
ver2025 ①データ分析を高速化! ②LLMと協力して効率化!
LLM開発での活用 RAG(VectorDB) Vectorstoreのデータ抽出例(Llamaindex) Pandas(Dataframe)と併用できる強みが活きる!
まとめ ◼ブログで振り返るDuckDBの魅力 1. 導入しやすさ 2. データ効率(処理速度)の高さ ※注意点: • データ型の管理に注意 • 目安として20MB以下のデータはPandasの方が速い ◼2025年も引き続き魅力あり 1. データ分析はwith LLMで高速化・効率化! 2. LLM開発でもDuckDBの併用は他DBにない強みあり!
エンジニア積極採用中! Findyさんの求人一覧: https://findy-code.io/companies/1717/jobs
ご清聴ありがとうございました!