Итерация по файлу .h5 - PullRequest
0 голосов
/ 07 июля 2019

Я пытаюсь прочитать и '.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()

Я хочу посмотреть, есть ли другой способ сделать это быстрее.Потому что при построении других вещей отладка - это очень медленный процесс.

...