你能告诉我为什么uproot不能解释树: Evt,AAObject,TObject和t吗?我可能在这里做错了什么,因为我不熟悉根文件。
我的目标:将根文件中的数据打开到pandas DataFrame中。
当我试图循环“Evt”树中的数据时,我得到以下分支AAObject、TObject和t的错误
ValueError: cannot interpret branch b'AAObject' as a Python type
in file: /myfile.root
ValueError: cannot interpret branch b't' as a Python type
in file: /myfile.root
ValueError: cannot interpret branch b'TObject' as a Python type
in file: /myfile.root这是我在浏览我的文件时输入的内容
data = uproot.open("myfile.root")["E"]
data.show()
data_branch_Evt['Evt']['AAObject'].basket(0)
data_branch_Evt['t'].basket(0)`下面是data.show()的结果
Evt TStreamerInfo None
AAObject TStreamerInfo None
TObject TStreamerInfo None
fUniqueID TStreamerBasicType asdtype('>u4')
fBits TStreamerBasicType asdtype('>u4')
usr TStreamerSTL asjagged(asdtype('>f8'), 10)
usr_names TStreamerSTL asgenobj(STLVector(STLString()))
id TStreamerBasicType asdtype('>i4')
det_id TStreamerBasicType asdtype('>i4')
mc_id TStreamerBasicType asdtype('>i4')
run_id TStreamerBasicType asdtype('>i4')
mc_run_id TStreamerBasicType asdtype('>i4')
frame_index TStreamerBasicType asdtype('>i4')
trigger_mask TStreamerBasicType asdtype('>u8')
trigger_counter TStreamerBasicType asdtype('>u8')
overlays TStreamerBasicType asdtype('>u4')
t TStreamerObjectAny None
t.fSec TStreamerBasicType asdtype('>i4')
t.fNanoSec TStreamerBasicType asdtype('>i4')
hits TStreamerSTL asdtype('>i4')....etc...`
谢谢!
发布于 2019-11-01 06:54:10
并不是所有的根类型都被识别--在类的定义中有一些东西还没有被处理。如果没有看到这个文件(作为一个GitHub问题),我就无法诊断它。我们从一个非常小的类型集开始,并根据需要添加更多的类型。
这不是在逐个类的基础上处理每个类的问题,而是关于处理类特性的问题。例如,最近添加的是包含数字向量的类。如果您有内容非常保守的类,比如“只有数字字段”,那么它应该被自动识别。
我们必须逐个处理的不是类型(如类),而是技术上的“种类”,或类型的类型。
https://stackoverflow.com/questions/58640970
复制相似问题