我有一个pytable。我经常需要将行复制到内存中的对象,然后插入到另一个pytable中。我想知道最简单的方法是什么。以下代码不起作用,因为无法将Row对象转换为dict。
for row in hf.root.my_table.iterrows():
rec = dict(row)
另外,我想有条件地将数据复制到另一个文件,可能会添加1-2个新列。为此,我需要从一个表中提取表描述,修改它,并使用修改后的表描述来创建一个新表。我怎么能这样做?
这也不起作用。总的来说,我发现使用pytables的方式有点尴尬,并且想知道更好的做事方式。
答案 0 :(得分:0)
例如the documentation中所述,您可以使用Row.fetch_all_fields
方法来获取独立副本,例如在关闭表文件后保留其信息。
您的示例代码如下
for row in hf.root.my_table.iterrows():
rec = row.fetch_all_fields()
rec
是一个numpy void标量,具有与行相同的键; rec['field']
产生的数据与row['field']
相同。