Я создал и обновил pandas фрейм данных, чтобы заполнить детали раздела изображения и его соответствующих функций.
slice_sq_dim = 200
df_slice = pd.DataFrame({'Sample': str,
'Slice_ID':int,
'Slice_Array': [np.zeros((slice_sq_dim,slice_sq_dim))],
'Interface_Array': [np.zeros((slice_sq_dim,slice_sq_dim))],
'Slice_Array_Threshold': [np.zeros((slice_sq_dim,slice_sq_dim))]})
Я добавил отдельные элементы этого фрейма данных, обновляя значение каждой ячейки через ряд за итерацией. После того, как я закончил свой фрейм данных (около 200 строк), я не могу отобразить больше, чем первый ряд его содержимого. Я предполагаю, что это связано с включением многомерных массивов numpy (фрагментов изображения) в качестве компонента. Я также экспортировал эти данные в файл JSON, чтобы он мог действовать как входной файл при следующем запуске. Следующий код показывает, как именно я это попробовал, а также как я заполняю свой фрейм данных.
Slices_data_file = os.path.join(os.getcwd(), "Slices_dataframe.json")
if os.path.isfile(Slices_data_file):
print("Using the saved data of slices from previous run..")
df_slice = pd.read_json(Slices_data_file, orient='records')
else:
print("No previously saved slice data found..")
no_of_slices = 20
for index, row in df_files.iterrows(): # df_files is the previous dataframe with image path details
path = row['image_path']
slices, slices_thresh, slices_interface = slice_image(path, slice_sq_dim, no_of_slices)
# each of the output is a list of 20 image slices
for n, arr in enumerate(slices):
indx = (indx_row - 1 ) * no_of_slices + n
df_slice.Sample[indx] = path
df_slice.Slice_ID[indx] = n+1
df_slice.Slice_Array[indx] = arr
df_slice.Interface_Array[indx] = slices_interface[n]
df_slice.Slice_Array_Threshold[indx] = slices_thresh[n]
df_slice.to_json(Slices_data_file, orient='records')
Я хотел бы сделать следующее:
- Завершить фрейм данных с возможностью добавить дополнительные столбцы скалярных значений
- Просматривать кадр данных обычно с несколькими строками и выполнять итерации, используя такие функции, как df_slice.iterrows (), которая в настоящее время не поддерживается
- Сохраните и повторно используйте базу данных, чтобы Избегайте повторных и трудоемких операций
Любой совет или лучшие предложения?