You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Add a way to keep track of dataframe actions #24057
Here there are actions, definitions, filters etc. How are we supposed to keep track of what happened to that dataframe? I only see Report but besides giving me a cutflow, it does not show me what was defined or how. This makes working with dataframes completely obscure, we get data from a dataframe, but where did that dataframe came from? Did any filter that was not supposed to happen was used? Was a column defined incorrectly? There is no way to know.
The only way I see to fix this problem properly is to wrap these dataframes into a class that keeps track of the actions, exposes Range, Filter etc and implements a save_actions(path, as_json = True). But wouldn't it make more sense if that method exists upstream in ROOT itself?
How do I know the definitions or what filter was applied? I am using range with 1000,but I do not see that 1000 anywhere. I believe the Redefine would not be tracked either.
Ok then IIUC what you are asking is a text form that precisely represents what the computation graph you defined is going to apply on your data, including the expressions of filters, how many entries you select with a Range, the expression of a Redefine. To me, this sounds like you want to see what your code does, but isn't the code itself already telling you that? I do not understand what's missing here.
Activity
vepadulano commentedon Nov 9, 2026
Hi @acampove ,
What you ask for already exists and is documented https://root.cern/doc/v632/classROOT_1_1RDataFrame.html#representgraph .
acampove commentedon Nov 9, 2026
That does not do what I asked. How will that graph show me the definition if I do:
I see:
How do I know the definitions or what filter was applied? I am using range with 1000,but I do not see that 1000 anywhere. I believe the
Redefinewould not be tracked either.vepadulano commentedon Nov 9, 2026
Ok then IIUC what you are asking is a text form that precisely represents what the computation graph you defined is going to apply on your data, including the expressions of filters, how many entries you select with a
Range, the expression of aRedefine. To me, this sounds like you want to see what your code does, but isn't the code itself already telling you that? I do not understand what's missing here.