Python 将PyTable中的一些字段添加到dataFrame

Python 将PyTable中的一些字段添加到dataFrame,python,pandas,dataframe,pytables,Python,Pandas,Dataframe,Pytables,我有一个Pytable,有12列。我想创建一个熊猫数据框,只包括其中的一部分,用于处理 PyTable相当长,大约有800-1000万行 我已经试过了,但由于某种原因,这个过程似乎非常缓慢 我将感谢任何帮助 这是我的尝试: import tables as t import pandas as pd cols = ['sheet','channel','ChipID','V','I'] df = pd.DataFrame(columns=cols) with t.open_file(talb

我有一个Pytable,有12列。我想创建一个熊猫数据框,只包括其中的一部分,用于处理

PyTable相当长,大约有800-1000万行

我已经试过了,但由于某种原因,这个过程似乎非常缓慢

我将感谢任何帮助

这是我的尝试:

import tables as t
import pandas as pd

cols = ['sheet','channel','ChipID','V','I']
df = pd.DataFrame(columns=cols)

with t.open_file(talble, 'r') as pytable:
    tab = pytable.get_node('/test_data')
    index = 0
    for row in tab.where("(testResult == 1)"):
        df.loc[index] = [row['sheet'], row['channel'], row['AD0'], row['AD1']]
        index+=1

请注意,对于我的dataFrame,我只对4列感兴趣,但是PyTable有10多列。

为什么不直接使用
选项卡中的迭代器。where
语句进入dataFrame的构造函数?然后,只需在末尾删除不需要的列。一次迭代一行并将行添加到数据帧中不是一种好方法。我以前考虑过这一点……但对数据帧的大小和
内存错误的关注让我选择了迭代解决方案……你怎么看?我仍然会在数据帧构造中使用迭代器。如果大小是一个问题,我会根据表分解查询,使其分块。一旦有了数据帧,您是否计划在内存中使用这些8mm行?