RDataFrame methods missing in PyROOT

Some RDataFrame methods appear to be missing when I use the class with PyROOT:

import ROOT
from ROOT import RDataFrame as RDF
rdf = RDF('tree', 'file.root')
d = dir(rdf)
for i in d: print(i)
Alias
Cache
Count
CreateAction
Define
DefineImpl
Filter
GetColumnNames
Histo1D
Histo1D<ROOT::Detail::RDF::TInferType, ROOT::Detail::RDF::TInferType>
Histo1D<ROOT::Detail::RDF::TInferType>
Histo2D
Histo2D<ROOT::Detail::RDF::TInferType, ROOT::Detail::RDF::TInferType, ROOT::Detail::RDF::TInferType>
Histo2D<ROOT::Detail::RDF::TInferType, ROOT::Detail::RDF::TInferType>
Histo3D
Histo3D<ROOT::Detail::RDF::TInferType, ROOT::Detail::RDF::TInferType, ROOT::Detail::RDF::TInferType, ROOT::Detail::RDF::TInferType>
Histo3D<ROOT::Detail::RDF::TInferType, ROOT::Detail::RDF::TInferType, ROOT::Detail::RDF::TInferType>
Max
Max<ROOT::Detail::RDF::TInferType>
Mean
Mean<ROOT::Detail::RDF::TInferType>
Min
Min<ROOT::Detail::RDF::TInferType>
Profile1D
Profile1D<ROOT::Detail::RDF::TInferType, ROOT::Detail::RDF::TInferType, ROOT::Detail::RDF::TInferType>
Profile1D<ROOT::Detail::RDF::TInferType, ROOT::Detail::RDF::TInferType>
Profile2D
Profile2D<ROOT::Detail::RDF::TInferType, ROOT::Detail::RDF::TInferType, ROOT::Detail::RDF::TInferType, ROOT::Detail::RDF::TInferType>
Profile2D<ROOT::Detail::RDF::TInferType, ROOT::Detail::RDF::TInferType, ROOT::Detail::RDF::TInferType>
Range
Report
Snapshot
Sum
Sum<ROOT::Detail::RDF::TInferType>
_ROOT::RDF::RInterface<ROOT::Detail::RDF::RLoopManager,void>__AddDefaultColumns
_ROOT::RDF::RInterface<ROOT::Detail::RDF::RLoopManager,void>__ConvertRegexToColumns
_ROOT::RDF::RInterface<ROOT::Detail::RDF::RLoopManager,void>__CreateAction<ROOT::Internal::RDF::ActionTypes::Histo1D, ROOT::Detail::RDF::TInferType, ROOT::Detail::RDF::TInferType, TH1D, 0>
_ROOT::RDF::RInterface<ROOT::Detail::RDF::RLoopManager,void>__CreateAction<ROOT::Internal::RDF::ActionTypes::Histo1D, ROOT::Detail::RDF::TInferType, TH1D, 0>
_ROOT::RDF::RInterface<ROOT::Detail::RDF::RLoopManager,void>__CreateAction<ROOT::Internal::RDF::ActionTypes::Histo2D, ROOT::Detail::RDF::TInferType, ROOT::Detail::RDF::TInferType, ROOT::Detail::RDF::TInferType, TH2D, 0>
_ROOT::RDF::RInterface<ROOT::Detail::RDF::RLoopManager,void>__CreateAction<ROOT::Internal::RDF::ActionTypes::Histo2D, ROOT::Detail::RDF::TInferType, ROOT::Detail::RDF::TInferType, TH2D, 0>
_ROOT::RDF::RInterface<ROOT::Detail::RDF::RLoopManager,void>__CreateAction<ROOT::Internal::RDF::ActionTypes::Histo3D, ROOT::Detail::RDF::TInferType, ROOT::Detail::RDF::TInferType, ROOT::Detail::RDF::TInferType, ROOT::Detail::RDF::TInferType, TH3D, 0>
_ROOT::RDF::RInterface<ROOT::Detail::RDF::RLoopManager,void>__CreateAction<ROOT::Internal::RDF::ActionTypes::Histo3D, ROOT::Detail::RDF::TInferType, ROOT::Detail::RDF::TInferType, ROOT::Detail::RDF::TInferType, TH3D, 0>
_ROOT::RDF::RInterface<ROOT::Detail::RDF::RLoopManager,void>__CreateAction<ROOT::Internal::RDF::ActionTypes::Max, ROOT::Detail::RDF::TInferType, double, 0>
_ROOT::RDF::RInterface<ROOT::Detail::RDF::RLoopManager,void>__CreateAction<ROOT::Internal::RDF::ActionTypes::Mean, ROOT::Detail::RDF::TInferType, double, 0>
_ROOT::RDF::RInterface<ROOT::Detail::RDF::RLoopManager,void>__CreateAction<ROOT::Internal::RDF::ActionTypes::Min, ROOT::Detail::RDF::TInferType, double, 0>
_ROOT::RDF::RInterface<ROOT::Detail::RDF::RLoopManager,void>__CreateAction<ROOT::Internal::RDF::ActionTypes::Profile1D, ROOT::Detail::RDF::TInferType, ROOT::Detail::RDF::TInferType, ROOT::Detail::RDF::TInferType, TProfile, 0>
_ROOT::RDF::RInterface<ROOT::Detail::RDF::RLoopManager,void>__CreateAction<ROOT::Internal::RDF::ActionTypes::Profile1D, ROOT::Detail::RDF::TInferType, ROOT::Detail::RDF::TInferType, TProfile, 0>
_ROOT::RDF::RInterface<ROOT::Detail::RDF::RLoopManager,void>__CreateAction<ROOT::Internal::RDF::ActionTypes::Profile2D, ROOT::Detail::RDF::TInferType, ROOT::Detail::RDF::TInferType, ROOT::Detail::RDF::TInferType, ROOT::Detail::RDF::TInferType, TProfile2D, 0>
_ROOT::RDF::RInterface<ROOT::Detail::RDF::RLoopManager,void>__CreateAction<ROOT::Internal::RDF::ActionTypes::Profile2D, ROOT::Detail::RDF::TInferType, ROOT::Detail::RDF::TInferType, ROOT::Detail::RDF::TInferType, TProfile2D, 0>
_ROOT::RDF::RInterface<ROOT::Detail::RDF::RLoopManager,void>__CreateAction<ROOT::Internal::RDF::ActionTypes::Sum, ROOT::Detail::RDF::TInferType, double, 0>
_ROOT::RDF::RInterface<ROOT::Detail::RDF::RLoopManager,void>__DefineImpl<(lambda), ROOT::Detail::RDF::TCCHelperTypes::TSlot, unsigned int>
_ROOT::RDF::RInterface<ROOT::Detail::RDF::RLoopManager,void>__DefineImpl<(lambda), ROOT::Detail::RDF::TCCHelperTypes::TSlotAndEntry, unsigned long long>
_ROOT::RDF::RInterface<ROOT::Detail::RDF::RLoopManager,void>__GetLoopManager
_ROOT::RDF::RInterface<ROOT::Detail::RDF::RLoopManager,void>__GetNodeTypeName
_ROOT::RDF::RInterface<ROOT::Detail::RDF::RLoopManager,void>__GetProxiedPtr
_ROOT::RDF::RInterface<ROOT::Detail::RDF::RLoopManager,void>__GetValidatedColumnNames
__add__
__assign__
__bool__
__class__
__cppname__
__delattr__
__destruct__
__dict__
__dispatch__
__div__
__doc__
__eq__
__format__
__ge__
__getattribute__
__gt__
__hash__
__init__
__le__
__lt__
__module__
__mul__
__ne__
__new__
__nonzero__
__radd__
__rdiv__
__reduce__
__reduce_ex__
__repr__
__rmul__
__rsub__
__scope__
__setattr__
__sizeof__
__str__
__sub__
__subclasshook__
__weakref__
_get_smart_ptr

For instance, RDataFrame.Foreach() does not seem to be defined.
Running an equivalent code in C++ works.
I am running everything in lxplus.

ROOT Version: 6.14/09
Platform: CentOS Linux release 7.6.1810
Compiler: gcc 7.4.1

Cheers,
Bruno

Dear Bruno,

Thank you for reporting. Indeed the Foreach function is missing from the dir, this is a bug and I opened this ticket:
https://sft.its.cern.ch/jira/browse/ROOT-10246

You are welcome.
Please note that I only gave an example. The methods ForeachSlot, Reduce, Display, Fill and others are also missing.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.