我正在尝试读取和'.h5'文件,并使用保存在文件中的数据集中的数据帧制作一个数据帧。事情是我的,与我拥有的.csv文件相比,我的代码似乎执行起来非常慢,我不能说这是不可能的,因为它具有56列和超过6000多个行。我想看看是否还有另一种方法可以更快地做到这一点。
我做了一系列方法。第一个访问所有数据集,并将它们附加在列表中,然后访问另一种方法,遍历该列表并将数据框连接为一个数据框。
#Reader for NEO file
def readerNEO(self):
dataframe_list = []
#Iterate through .h5 file
def get_objects(name, obj):
if isinstance(obj, h5.Dataset):
dataframe = pd.DataFrame(obj)
dataframe_list.append(dataframe)
#UNDERCONSTRUCTION
def wibs_epochconverter():
#column = list(self.dataframe['Monitored_Seconds'])
#for i in range(len(column)):
# column[i] = pd.to_datetime(column[i], origin=pd.Timestamp('1904-1-1'), unit='s')
dataframe = self.dataframe
for i in pd.Series.iteritems(dataframe['Monitored_Seconds']):
dataframe['Monitored_Second':i] = pd.to_datetime(dataframe['Monitored_Seconds':i], origin=pd.Timestamp('1904-1-1'), unit='s')
def concat():
#Extract and concatenate dataframes from data sets into a single Dataframe
for i in range(len(dataframe_list)):
if i == 0:
merged = dataframe_list[i]
else:
merged = pd.concat([merged, dataframe_list[i]], axis=1, sort=False)
#Set Column Headers
merged.columns = WIBS_NEO.instrumentVariables
self.dataframe = merged
wibs_epochconverter()
with h5.File(self.file_path, 'r') as file:
file.visititems(get_objects)
concat()
我想看看是否还有另一种方法可以更快地做到这一点。因为在构建其他东西时,调试是减慢速度的方法。