遍历“ .h5”文件

时间:2019-07-07 14:32:26

标签: python pandas dataframe iteration

我正在尝试读取和'.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()

我想看看是否还有另一种方法可以更快地做到这一点。因为在构建其他东西时,调试是减慢速度的方法。

0 个答案:

没有答案