410
502

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 1 year has passed since last update.

新しいデヌタ凊理ラむブラリの孊習はもう䞍芁 Python 初孊者のための Ibis 100 本ノック

410
Last updated at Posted at 2024-01-08

ibis.png

Information

2024/7/24

  • Ibis-Polars vs Native Polars
    Ibis-Polars ず Native Polars の凊理速床の比范蚘事を曞かれおいる方がおりたした。
    Ibis 経由で Polars を䜿甚しおも Polars ず凊理速床に倧きな差がないこずを瀺しおいたした。
    ibis-frameworkでPolarsずSQLを぀かっおみた

2024/1/14

  • Kaggle notebook for Ibis
    Kaggle で Ibis を䜿甚するための Sample Notebook を甚意したした。Kaggle でもぜひ Ibis をご掻甚䞋さい。
    🊩 [Ibis] Kaggle-Titanic-Tutorial
      
  • Ibis 100 本ノック補足蚘事
    Ibis 100 本ノックに぀いお、よりスマヌトな曞き方等に぀いお @hkzm さんが補足蚘事を曞いおくれたしたこの蚘事を参考にコンテンツのほうもブラッシュアップしたいず思いたす。
    Ibis 100 本ノックの蚘事を受けお

はじめに

どうもこんにちは、kunishou です。
 
この床 Ibis ずいう、Python の統合デヌタ凊理ラむブラリを効率的に孊ぶためのコンテンツずしお 「 Python 初孊者のための Ibis 100 本ノック」 を䜜成したので公開したす。こちらは過去に公開した「 Python 初孊者のための pandas 100 本ノック」、「 Python 初孊者のための Polars 100 本ノック」の問題内容を Ibis のメ゜ッドに合わせお修正、再線したものになりたす。本コンテンツに取り組むこずで Ibis を甚いたひず通りのデヌタ操䜜、デヌタ凊理を実斜できるようになりたす。たた、本コンテンツは Google Colab 䞊で実斜できるため、PC ずむンタヌネット環境があれば、Python 環境を構築するこずなくすぐに Ibis の孊習を始めるこずができたす。

以䞋に、コンテンツのむメヌゞ動画を茉せおおきたす
※動画は過去に䜜成した pandas 100 本ノックのものであり、今回ランダムノック版は䜜成しおいたせん

Why Ibis 

いきなり Ibis 100 本ノックの玹介から入りたしたが本蚘事では、なぜ Ibis が必芁なのか、デヌタ凊理ラむブラリずしおどういう点が優れおいるのかに぀いお、デヌタ凊理の珟状や課題に觊れながら説明し、蚘事埌半に 100 本ノックの内容に぀いお説明したいず思いたす。

本蚘事の構成

  • 蚘事前半
    デヌタ凊理の珟状ず課題、Ibis の特城に぀いお
  • 蚘事埌半
    Ibis 100 本ノックに぀いお

デヌタ凊理の珟状1

デヌタ分析においお普段、皆さんはどのラむブラリを甚いおデヌタ凊理を行っおいたすでしょうかおそらく pandas を䜿っおいるずいう人が圧倒的に倚いず思いたす。実際、デヌタ凊理をする䞊で pandas は非垞に優秀で、数幎前たでは pandas が Python ゚コシステム内のあらゆるデヌタを扱うための最適なラむブラリでした。しかし、近幎、デヌタ分析やデヌタ゚ンゞニアリング分野の進化、倚様化が急速に進み pandas が垞に最適なラむブラリではなくなっおきたした。

  • デヌタ分析分野
    数幎前たでは pandas だけであらゆるデヌタ分析を行うこずができたした。しかし、デヌタ分析に求められるものが高床化したり、扱うデヌタの倧芏暡化が進む䞭、pandas では満足のいくデヌタ凊理ができないシヌンが倚くなっおきたした。そのため近幎では Dask や Polars ず蚀った、より高速にデヌタ凊理を行なえるラむブラリも䜿われるようになっおきたした。では、 Dask や Polars を䜿えるようになれば問題ないのでしょうか 今埌もデヌタ分析ぞの芁求の高床化、デヌタの倧芏暡化は進み、数幎埌にはたた新しいデヌタ凊理ラむブラリが登堎するず予想されたす。そのため、デヌタ分析埓事者は、今埌も新たなラむブラリを䜿うための継続的な孊習が必芁になるず考えられたす。

  • デヌタ゚ンゞニアリング分野
    自瀟のデヌタ基盀に応じおデヌタ凊理ラむブラリを孊習する必芁がありたす。デヌタ基盀の技術も日々進化、倚様化しおおり、自瀟のデヌタ基盀が Hadoop であれば PySpark を孊ぶ必芁がありたすが、そこから基盀が Google Cloud に移行、䜵甚するようになれば、 BigQuery も孊ばなくおはいけなく、 開発で䜿うデヌタ基盀に合わせおデヌタ凊理の手段を孊習し続けなくおはいけたせん。たたデヌタ基盀を移行する堎合はこれたで䜿甚しおいたデヌタ凊理パむプラむンのコヌドを曞き換える必芁もありたす。

デヌタ凊理に今埌求められるこず1

  • デヌタ凊理フレヌムワヌクのモゞュヌル化ぞのシフト
    デヌタ分析やデヌタ゚ンゞニアリング分野の進化、倚様化を螏たえ、埓来のように pandas のような特定のラむブラリに䟝存するのではなく、様々なナヌスケヌスに合わせお最適なフレヌムワヌクラむブラリや手段をモゞュヌルずしお柔軟に遞択でき、䜎コストで開発を継続できるこずが重芁になりたすこれは pandas コア開発者の Marc Garcia 氏も提唱しおいたす。

デヌタ凊理の課題たずめ

  1. デヌタ凊理ラむブラリやデヌタ基盀が進化、倚様化するごずに新しいデヌタ凊理ラむブラリを孊習する必芁があり、 継続的な孊習コストが発生
  2. デヌタ凊理ラむブラリの倉曎やデヌタ基盀の移行の郜床、 デヌタ凊理パむプラむンのコヌド曞き換え䜜業コストが発生

ここたでの説明で、デヌタ凊理の珟状や課題が理解できたかず思いたす。以降では、これらの課題を解決するのに Ibis が非垞に有効であるこずを説明しおいきたいず思いたす。

統合デヌタ凊理ラむブラリずしおの Ibis

Ibis は統合的にデヌタ凊理を実行可胜なむンタヌフェヌスを提䟛するラむブラリで、 珟圚サポヌトしおいる18を超えるデヌタ凊理ラむブラリを同䞀の蚘法で䜿甚するこずができたす。

※ ちなみに Ibis は英語で「トキ」のこずを指したす。

  • 公匏 Reference

  • Github

2024幎1月珟圚サポヌトしおいる゚ンゞン

BigQuery , ClickHouse , Dask , DataFusion , Druid ,
DuckDB MotherDuck ぞの接続もサポヌト , Exasol ,
Flink , Impala , MSSQL , MySQL , Oracle , pandas ( CuDF ) , Polars ,
PostresSQL , PySpark , Snowflake , SQLite , Trino

image.png
画像匕甚https://voltrondata.com/resources/ibis-cudf-pandas

Ibis は必芁な時にい぀でもバック゚ンドの凊理゚ンゞンを切り替えるこずができるラむブラリであり、様々なナヌスケヌスに柔軟に、䜎コストで察応するこずができたす。以䞋のように異なるフレヌムワヌクをすべお同じ蚘法でデヌタ操䜜するこずができたす。

  • バック゚ンドの凊理゚ンゞンずしお pandas を䜿甚する堎合
backend pandas
ibis.set_backend("pandas") # pandas をバック゚ンドに指定

t = (
   ibis.read_csv("titanic.csv")
   .select("name", "sex", "age", "fare")
   .filter(t["sex"] == "female")
   .mutate(
       # age ず fare の偏差倀集蚈
       s.across(["age", "fare"] , {"zscore": lambda x: ((x - x.mean()) / x.std()) * 10 + 50}))
   .order_by(ibis.desc("age")) # age 列で降順゜ヌト
   )

t.execute() # ク゚リの実行
   
  • バック゚ンドの凊理゚ンゞンずしお Polars を䜿甚する堎合
backend polars
ibis.set_backend("polars") # polars をバック゚ンドに指定

t = (
   ibis.read_csv("titanic.csv")
   .select("name", "sex", "age", "fare")
   .filter(t["sex"] == "female")
   .mutate(
       # age ず fare の偏差倀集蚈
       s.across(["age", "fare"] , {"zscore": lambda x: ((x - x.mean()) / x.std()) * 10 + 50}))
   .order_by(ibis.desc("age")) # age 列で降順゜ヌト
   )

t.execute() # ク゚リの実行
   

䞊蚘のコヌド䟋のように 冒頭1行目を修正するだけでバック゚ンドの凊理゚ンゞンを pandas から polars に切り替えるこずができたした。

数幎埌に仮に、neo-pandas ずいう新芏ラむブラリが登堎し、それを Ibis がサポヌトした堎合、以䞋のようにバック゚ンドを指定すればすぐに利甚するこずができたす既存コヌドの曞き換えは䞍芁です。

backend neo-pandas

ibis.set_backend("neo-pandas") # neo-pandas をバック゚ンドに指定
   

このように Ibis を利甚するこずで、デヌタ分析、デヌタ゚ンゞニアリング分野の進化、倚様化に䌎い発生する 新しいラむブラリの孊習コストやコヌド曞き換えの䜜業コストを限りなく少なくするこずができたす。

Ibis の抂芁、特城

この章では Ibis の抂芁、特城に぀いお玹介しおいきたす。

  • 様々なデヌタ凊理ラむブラリを同䞀の蚘法で曞け、珟圚18を超えるラむブラリをサポヌトしおいる。 2023幎12月には CuDF にも察応し、CuDF 拡匵を読み蟌むためのコヌド1行を远加するだけでバック゚ンドを CuDF にしおデヌタ操䜜をするこずができる。 バック゚ンドを CPU環境では Polars 、GPU環境では CuDF ずいう具合に環境に応じお同じパむプラむンを䜿い分けるこずができそうです。Ibis での CuDF の䜿甚方法に関する蚘事は以䞋を参照しお䞋さい。

  • Ibis は、 統䞀された API むンタヌフェヌスの提䟛ず、入力されたAPIを各゚ンゞンで凊理するための圢匏に倉換し、凊理゚ンゞンに枡す圹割を担っおおり、 Ibis 自䜓がデヌタ凊理をしおいるわけではない人間の蚀語で䟋えるず、Ibisは Ibis語を各デヌタフレヌム蚀語に翻蚳しおくれる通蚳のようなむメヌゞ。 デヌタ凊理ラむブラリず蚀うよりむンタヌフェヌスず蚀ったほうが良さそうです。
  • 珟圚、 スポンサヌも付いおおり、開発は鋭意進行䞭 で、サポヌトするフレヌムワヌクも増えおいる2023幎には SnowFlake , Trino , Polars, CuDF 等に察応。
  • 2015幎から開発されおおり砎壊的な倉曎が少ない。 䟋えば、珟圚、CPU環境での凊理速床が速いず蚀われおいる Polars は䞋蚘蚘事の通り急速に開発が進められおいる関係で砎壊的な倉曎が倚く、仕様倉曎を垞にキャッチアップする必芁があるが Ibis ではその心配は少ない。

  • pandasのコア開発者である Marc Garcia 氏が開発に携わっおいる前述でモゞュヌル化を提唱しおいた人です。
  • Google の DVTデヌタ怜蚌ツヌルのバックボヌンに採甚されおいる。2 耇数の異なるデヌタベヌスに同時接続できるIbisを䜿うこずでクロスバック゚ンドでのデヌタ比范怜蚌が可胜になり、顧客の環境から Google Cloud ぞの移行時の怜蚌に掻甚されおいる。

The Data Validation Tool is an open sourced Python CLI tool based on the Ibis framework that compares heterogeneous data source tables with multi-leveled validation functions.

Ibis の特城たずめ

  • Ibisは、単䞀のデヌタ凊理フレヌムワヌクに䟝存せず、あらゆるナヌスケヌスに察しお手段を柔軟に遞択できるこずを志向した統合デヌタ凊理ラむブラリである。
  • Ibis ではバック゚ンドを切り替えるだけで18を超えるデヌタ凊理フレヌムワヌクを少ないコヌド修正で利甚するこずができ、新しいラむブラリの孊習コストや、デヌタ凊理パむプラむンのコヌド曞き換え䜜業コストを限りなく少なくするこずができる。
  • スポンサヌが付き珟圚も開発が鋭意進行しおいるこず、pandas のコア開発者が開発に携わっおいるこず、Google の DVTデヌタ怜蚌ツヌルに採甚されおいるこずから、 ラむブラリずしおの将来性は明るい。

Ibis の利甚シヌン

この章では、実際どういったシヌンで Ibis が有効であるかの想定事䟋を玹介したす。なお、あくたでも䞀䟋で、これ以倖にも掻甚シヌンはあるず思いたす。

ロヌカル環境ずステヌゞング環境以降でデヌタ凊理手段を倉えたい3

䟋えば、Hadoop から PySpark でデヌタ抜出が必芁なプロダクト開発があった堎合、ロヌカル環境での開発から PySpark を䜿甚するず困難になるこずがありたす。これは、PySpark が倧芏暡なデヌタセットず分散コンピュヌティング環境に最適化されおいるためです。このようなケヌスでは、たずロヌカル環境単䞀ノヌドでの開発は、䟋えば DuckDB で行い、ステヌゞング環境耇数ノヌド以降でパむプラむンを PySpark に曞き換えるこずが倚いかず思いたす。このようなケヌスで Ibis を䜿えれば、ステヌゞング環境以降でのコヌド曞き換えは発生せず、開発フェヌズに応じおバック゚ンドを DuckDB から PySpark に切り替えるだけで枈たせるこずができたす。

耇数のデヌタ基盀を暪断するプロダクト

䌁業によっおは、デヌタのセキュリティレベルによっおデヌタを管理する基盀を䜿い分けおいるずころも倚いかず思いたす。䟋えば、 デヌタ X は オンプレ環境の Hadoop から PySpark で抜出し、デヌタ Y に぀いおは Google Cloud から BigQuery で抜出するようなケヌスがあった堎合、担圓者は䞡方のデヌタ凊理フレヌムワヌクを孊習する必芁がありたす。もしくは、PySpark が䜿える A さんず BigQuery が䜿える B さんの二人で開発を担圓するケヌスもありそうです。埌者の堎合は、開発の担圓が属人化する可胜性もありたす。このようなケヌスで Ibis を䜿えれば、䜙蚈な孊習コストを抑えられ、たた、Ibis を䜿える開発メンバヌであれば誰でもパむプラむンを開発・保守するこずができ、属人化も防止できたす。

Ibis 移行においお SQL コヌドを流甚したい

デヌタ凊理手段を Ibis に移行する際のコヌド曞き換えを最小限に抑えるこずも可胜です。Ibis では実行コヌドに SQL を含めるこずができるため、元のデヌタ基盀で SQL でデヌタ抜出しおいた堎合、その SQL をそのたた流甚するこずが可胜です。以䞋は、DuckDB においおデヌタ凊理手段を SQL から Ibis に移行する際に SQL を流甚するコヌドの䟋です。 .sql() に DuckDB の SQL を枡せば元の SQL を流甚しおデヌタ凊理を行うこずができたす。この方法により、Ibis を導入する堎合の SQL を Ibis メ゜ッドに曞き換える䜜業は䞍芁になりたす。

ibis.set_backend("duckdb") # バック゚ンドに DuckDB を指定

t = ibis.read_csv("titanic.csv", table_name="titanic")

(
t.sql("""
  select
    *
  from titanic
  where sex = 'male'
  and name like '%Allison%'
  """)
)

デヌタ基盀移行においお SQL コヌドを流甚したい

デヌタ基盀の移行に䌎うコヌド曞き換えを最小限に抑えたい堎合、これも Ibis で実珟できる堎合がありたす。䟋えば、元々、 MySQL を利甚しおいお DuckDB に移行するこずになった堎合、MySQL で䜿甚しおいた SQL をそのたた流甚するこずができたす。 Ibis では実行コヌドに SQL を含めるこずができ、か぀ SQL 方蚀を吞収させる機胜もありたす。以䞋のように .sql() の dialect 匕数で SQL の皮類を指定するこずで バック゚ンドは DuckDB だけども MySQL の SQL でデヌタ凊理を行うこずが可胜です。この方法により、デヌタ基盀移行に䌎う SQL の DuckDB 様匏ぞの曞き換え䜜業や、SQL を Ibis メ゜ッドに曞き換える䜜業は䞍芁になりたす。

backend DuckDB における MySQL SQL の実行
ibis.set_backend("duckdb") # バック゚ンドに DuckDB を指定

t = ibis.read_csv("titanic.csv", table_name="titanic")

# MySQL の SQL
sql = """
      select
        `name`,
        `sex`,
        `age`,
        `fare`
      from `titanic`
      where `age` >= 30
      """

t.sql(sql, dialect="mysql") # dialect で SQL の皮類を指定

その他の機胜

Ibis には䞊蚘で説明した機胜以倖にも、機械孊習ぞのデヌタのパむプをシヌムレスに行うための IbisML や、dbt モデルを Ibis で䜜成するための dbt-ibis など、䟿利なツヌルが倚数甚意されおいたす。私も詳现を把握できおいないため本蚘事では説明したせんが、興味のある方はぜひ調べおみお䞋さい。

Example IbisML
import ibis
import ibisml as ml

# Load some training and testing data
train = ibis.read_csv("training.csv")
test = ibis.read_csv("testing.csv")

# A recipe for a feature engineering pipeline that:
# - imputes missing values in numeric columns with their mean
# - applies standard scaling to all numeric columns
# - one-hot-encodes all nominal columns
recipe = ml.Recipe(
    ml.ImputeMean(ml.numeric()),
    ml.ScaleStandard(ml.numeric()),
    ml.OneHotEncode(ml.nominal()),
)

# Fit the recipe against the training data
transform = recipe.fit(train, outcomes=["outcome_col"])

# Transform the training data and train a scikit-learn model
from sklearn.svm import LinearSVC
model = LinearSVC()

df_train = transform(train).to_pandas()
X = df_train[transform.features]
y = df_train[transform.outcomes]
model.fit(X, y)

# Transform the testing data and use the model to predict results
df_test = transform(test).to_pandas()
X = df_test[transform.features]
y = df_test[transform.outcomes]
y_pred = model.predict(X)

以䞊、ここたでで Ibis の抂芁、メリット、どういうシヌンで掻甚できそうかを玹介したした。 無駄な開発コストの抑制は持続的な開発の実珟にも繋がる ため、もし、メリットがありそうだなず感じおいただけたのであれば、是非 Ibis 100 本ノックの方にもトラむしおみお䞋さい

Ibis 100 本ノックに぀いお

Ibis_100_knocks

統合デヌタ凊理ラむブラリ Ibis を効率的に孊習するためのコンテンツです。おそらく Ibis の䜿甚方法を網矅的にたずめた囜内初の Ibis 孊習コンテンツだず思いたすちなみに海倖でもあたり孊習コンテンツがなさそうだったので今回は英語版も䜜成したした。

コンテンツ抂芁

  • Notebook 䞊のセルに蚘茉された Ibis メ゜ッドに関する蚭問 100 問を解いおいきたすタむタニック号の乗客デヌタ等の実圚するデヌタに察しお Ibis メ゜ッドで凊理を実行しおいきたす。
  • Githubのレポゞトリには Google Colab 版が甚意しおあり、Python 環境の構築䞍芁で、すぐにコンテンツを利甚するこずが可胜です。
  • セクションは、基瀎 (1-16)、抜出 (17-33)、加工 (34-61)、マヌゞず連結 (62-67)、統蚈 (68-80)、ラベリング (81-82)、SQL (83-85)、グラフ (87-88)、その他 (89)、タむタニック号乗客の生存予枬(90-100)の 10 個に分かれおいたす。

䟋えば、Notebook のセルに以䞋のような問題が蚘茉されおいたす。ここに解答コヌドを蚘入し、実行しお凊理結果を確認したす。

# 【8】
# t を fare の列で昇順に䞊び替えお衚瀺したしょう

# print(ans[8]) # 解答衚瀺
t = initialize1() # 初期化
# -----------------------------------------



解答を確認したい堎合は、「# print(ans[8])」の「#」を削陀しお実行するず以䞋のように解答のコヌドや Tips を衚瀺するこずができたす。たた、すべおの解答に pandas で曞く堎合の蚘法も茉せおいたす。

[answer8]

t.order_by("fare") # 昇順゜ヌト
# t.order_by(ibis.desc("fare")) # 降順゜ヌト

----------------------------------------------

[Tips]
・.order_by() メ゜ッドを䜿甚するこずで、特定の列でデヌタを゜ヌトできる。
 デフォルトでは昇順になっおいる。
・降順で゜ヌトしたい堎合は t.order_by(t["fare"].desc()) のように曞く。
・t.order_by(ibis.desc("fare")) ず曞いおも降順゜ヌトができる。
・耇数列で゜ヌトするこずも可胜

ex1) fare列で昇順゜ヌトした埌にage列で昇順゜ヌトしたい堎合
※ リスト内でage列を先に曞く点に泚意

t.order_by(["age", "fare"])

ex2) fare列で降順゜ヌトした埌にage列で降順゜ヌトしたい堎合
※ リスト内でage列を先に曞く点に泚意

t.order_by([ibis.desc("age"), ibis.desc("fare")])

ex3) fare列で降順゜ヌトした埌にage列で昇順゜ヌトしたい堎合
※ リスト内でage列を先に曞く点に泚意

t.order_by([ibis.asc("age"), ibis.desc("fare")])

----------------------------------------------

[参考] pandas蚘法

df.sort_values('fare')

利甚方法

Google Colab 䞊で実斜できるため Python 環境を構築するこずなく利甚可胜です。なお、問題を解く前に「党解答衚瀺版」を芋お䞀床メ゜ッドを把握するこずを掚奚したす。

Google Colab

GitHubのペヌゞに移動し、以䞋のリンクから Colab のペヌゞに移動できたす。

  • Ibis 100 本ノック

  • 党解答衚瀺板 初めはこちらの閲芧を掚奚

  • ipynbファむルを開いた埌に、先頭のセルを実行するず解答ファむル、問題で䜿甚するデヌタセットのダりンロヌドおよび読み蟌みがされたす。䜿甚するデヌタセットは、タむタニック号の乗客デヌタ等になっおいたす。
  • 各蚭問のセル内に蚭問に察するコヌドを入力しおいきたす。
  • 答えが分からない堎合は、蚭問セル内の「#print(ans[])」ずいう蚘述から「#」を消しお実行するこずで、解答䟋が衚瀺されたす。
  • 党解答衚瀺板では、すべおの解答ず出力結果を最初から衚瀺しおいたす。解答や出力結果をたずめお確認したいずきにご掻甚䞋さい。Ibis を䞀床も觊ったこずのない方はたずこちらの党解答衚瀺版のほうを流し芋しおひず通りメ゜ッドを確認しおみるず良いず思いたす。

ディレクトリ構成

Ibis_100_knocks
 ├ input_ja/   100 問分の解答ファむル、問題で䜿甚するデヌタセットが栌玍日本語版
├ input_en/   100 問分の解答ファむル、問題で䜿甚するデヌタセットが栌玍英語版
 └ output/   問題でファむル出力する際にここに栌玍

その他

  • 100 本ノック孊習埌に、Ibis をロヌカル環境で䜿甚したいずきは pip install ibis-framework で自身の環境にむンストヌルする。なお、 pip install ibis ずするずたったく違うラむブラリがむンストヌルされるため泚意するこず。
  • Ibis むンストヌル時はバック゚ンドで䜿甚するラむブラリもオプションで指定する。DuckDB がデフォルトのバック゚ンドなので 基本は pip install ibis-framework[duckdb] ずなる。
pip install
pip install ibis-framework[duckdb] # 通垞のむンストヌル
pip install ibis-framework[duckdb,pandas] # pandas をバック゚ンドで䜿甚したい堎合
  • Ibis でサポヌトしおいる18超の凊理゚ンゞンにおいお、゚ンゞンごずにサポヌトしおいないメ゜ッドが存圚する堎合がありたす。䟋えば、DuckDB バック゚ンドではコヌド䞭で SQL を実行する .sql() メ゜ッドが䜿甚できたすが、 pandas バック゚ンドでは SQL には察応しおいないので .sql() メ゜ッドは䜿甚できたせん。凊理゚ンゞンずサポヌトメ゜ッドの察応に぀いお以䞋の衚を参考にしお䞋さい。

Ibis 100本ノック利甚にあたっおの留意点

  • Python 初孊者が利甚するこずを前提に䜜成しおいるため、内容は比范的簡易なものになっおいたす。
  • pandas 100 本ノックがもずもず「 Python3 ゚ンゞニア 認定デヌタ分析詊隓」の出題内容に沿っお䜜成しおいたため問題に偏りがありたしたが、Ibis 版は内容が網矅的になるよう再線しおいたす。
  • Ibis には、ひず぀の凊理をする堎合でもいろいろな曞き方があるため、ここに蚘茉しおる解答が唯䞀の解答ではありたせん  䟋えば、select を甚いおデヌタ遞択する問題は、t["列名"] のように曞けくこずもできたす。
  • 公匏リファレンスの内容を完党に把握できおいるわけではないため、ベストプラクティスな曞き方を確認でき次第、解答も随時曎新しおいきたす。

䜿甚範囲泚意事項

  • 䜿甚範囲
    個人・法人を問わず誰でも䜿甚可胜
    (有志の勉匷䌚や瀟内の研修で䜿う際、ご䞀報いただけるず䜜者のモチベヌションが䞊がりたす)

  • 泚意事項
    コンテンツの再配垃・改線は䞍可

おわりに

今回、Ibis 100 本ノックずいうコンテンツに぀いお玹介させおいただきたした。
本コンテンツに関しお質問・芁望があればご連絡䞋さい。

  1. The Standard Dataframe Language for Data Analysis and Data Engineering ↩ ↩2

  2. How Google Uses Ibis for its Data Validation Tool (DVT) ↩

  3. Scaling Out to Apache Spark with Ibis ↩

410
502
5

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
410
502

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?