Python 将PyTable中的一些字段添加到dataFrame
我有一个Pytable,有12列。我想创建一个熊猫数据框,只包括其中的一部分,用于处理 PyTable相当长,大约有800-1000万行 我已经试过了,但由于某种原因,这个过程似乎非常缓慢 我将感谢任何帮助 这是我的尝试: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
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行?