首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用uproot将带有TVector3分支的TTree加载到Pandas DataFrame中

如何使用uproot将带有TVector3分支的TTree加载到Pandas DataFrame中
EN

Stack Overflow用户
提问于 2020-01-27 19:46:35
回答 1查看 189关注 0票数 1

我有几个根文件,其中包含一个带有一些分支的TTree,这些分支是TVector3对象。我试图将向量分量(x,y,z)加载到Pandas DataFrame中,但无论我如何尝试,我都会遇到这个错误:

代码语言:javascript
复制
ValueError: cannot interpret branch b'hitPosExtrap' as a Python type

我正在尝试使用uproot.pandas.iterate,但是也尝试了树的f[tree_name].array('hitPosExtrap')方法,但是没有用。在我看来,它似乎能够理解TVector3对象,但我猜我遗漏了一些东西。

有谁知道如何从这些树中获取向量分量(或一些类似TVector3的对象)?

EN

回答 1

Stack Overflow用户

发布于 2020-01-28 01:29:23

问题似乎是TVector3作为子分支存储在这个特定的根文件中。向量分量可以作为该子分支的叶子访问:

代码语言:javascript
复制
f[tree_name]["hitPosExtrap"]["fX"].array()
f[tree_name]["hitPosExtrap"]["fY"].array()
f[tree_name]["hitPosExtrap"]["fZ"].array()

经过一些讨论(https://github.com/scikit-hep/uproot/issues/443),看起来branches+subbranches当前并不直接支持在使用pandas.iterate函数时提供uproot的名称。现在,必须显式访问子分支。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59930539

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档