データフレームしたい(RDataFrame)
1#include "ROOT/RDataFrame.hxx"
2
3ROOT::RDataFrame df("treeName", "file.root");
4
5// 条件でフィルタリング
6auto filtered_df = df.Filter("x > 0 && y < 100");
7
8// ヒストグラムを作成
9auto hist = filtered_df.Histo1D(
10 {"hist", "Distribution", 100, 0, 10},
11 "x"
12);
RDataFrameは、ROOTにおいてpandasのような使い勝手を目指した高レベルAPIです。 2017年ころに導入され、最新のROOTで推奨されているデータ分析フレームワークです。
1import ROOT
2
3df = ROOT.RDataFrame("treeName", "file.root")
4
5# 条件でフィルタリング
6filtered_df = df.Filter("x > 0 && y < 100")
7
8# ヒストグラムを作成
9hist = filtered_df.Histo1D(
10 ("hist", "Distribution", 100, 0, 10),
11 "x"
12)
ROOTファイルを読み込みたい(単一ファイル)
1#include "ROOT/RDataFrame.hxx"
2
3ROOT::RDataFrame df("treeName", "file.root");
ROOTファイルのTTreeをRDataFrameで読み込みます。
複数のROOTファイルを読み込みたい
1#include "ROOT/RDataFrame.hxx"
2
3ROOT::RDataFrame df(
4 "treeName",
5 {"file1.root", "file2.root", "file3.root"}
6);
複数のROOTファイルを同時に処理できます。 内部的にはTChainが使用されています。
1import ROOT
2
3df = ROOT.RDataFrame(
4 "treeName",
5 ["file1.root", "file2.root", "file3.root"]
6)
複数ファイルの処理も同じインターフェイスで対応できます。
背景情報
注釈
ROOTは1995年にリリースされたときからTTreeというデータ構造を軸にしていました。
しかし、LHC Run4の開始に合わせて、RDataFrameやRNTupleといった
よりモダンなフレームワークへと置き換えるというロードマップを描いています。
RDataFrameは従来のTTreeに比べて:
直感的なAPI設計
より効率的なメモリ管理
並列処理の容易さ
を特徴としています。