在 csv 中保存为数据框的 3D 数组不成功
3D array saved as data frame in csv is not successful
我有一些 MRI 数据,我正在尝试将处理后的 3D 图像作为具有相应标签的数组放入数据框。然后将其保存在 CSV 文件中。
我将每个 3D 图像制作成 161616 数组。
但是,保存CSV文件后,数组似乎并没有完全写入文件。只保存了一部分。
我不确定为什么...
这是我处理 3D 图像的代码:
trainDWI_images=[]
trainDWI_data=[]
for ptname in Train_uniqueID:
if Train_df[(Train_df.ProxID==ptname)&(Train_df.Name =='ep2d_diff_tra_DYNDIST0')].index.tolist() !=[]:
index=Train_df[(Train_df.ProxID==ptname)&(Train_df.Name =='ep2d_diff_tra_DYNDIST0')].index.tolist()
elif Train_df[(Train_df.ProxID==ptname)&(Train_df.Name == 'ep2d_diff_tra_DYNDIST_MIX0')].index.tolist() !=[]:
index=Train_df[(Train_df.ProxID==ptname)&(Train_df.Name =='ep2d_diff_tra_DYNDIST_MIX0')].index.tolist()
ijk_value=Train_df.ijk[index] #lesion location
fid_value=Train_df.fid[index].values #label
for i, ijk in enumerate(ijk_value.values):
seed=[int(x) for x in ijk.split()]
finding=fid_value[i]
for filename in Train_total_DWI:
if ptname in filename:
i=Train_total_DWI.index(filename)
niipath=os.path.join(train_dir,filename)
img_nii=nib.load(niipath)
fourdimage=np.asanyarray(img_nii.dataobj)
image = fourdimage[:, :, :, 0]
img_arr=standardize(image)
extracted_traint2images=img_arr[(seed[0]-8):(seed[0]+8),(seed[1]-8):(seed[1]+8),(seed[2]-8):(seed[2]+8)]#expanding the sub volume from lesion
#print(extracted_traint2images.shape)
trainDWI_images.append(extracted_traint2images)
trainDWI_data.append({'Patient' : ptname , 'label' :finding,'images':extracted_traint2images , 'ijk':seed })
#T2_df=T2_dframe.({'Patient' : ptname , 'label' :fid_value,'images':extracted_t2images , 'ijk':seed } , ignore_index=True)
trainDWI_df = pd.DataFrame(trainDWI_data)
以下是我保存为 CSV 文件的代码:
outtrdwi = 'Packed_DWI_train.csv'
outdir = './dir'
if not os.path.exists(outdir):
os.mkdir(outdir)
fullname = os.path.join(outdir, outtrdwi)
trainDWI_df.to_csv(fullname, encoding='utf-8')
我注意到在我的 CSV 文件中,数组的某些部分未保存并被替换为 '...'
像这样:
[-0.32482308 -0.2481549 -0.2481549 ... -0.2481549 -0.13315264
-0.47815944]
我该如何解决这个问题?谢谢。
我正在努力更好地了解您遇到的问题。查看行:
for i, ijk in enumerate(ijk_value.values):
seed=[int(x) for x in ijk.split()]
finding=fid_value[i]
是[-0.32482308 -0.2481549 -0.2481549 ... -0.2481549 -0.13315264 -0.47815944]
上面'seed'变量的一个例子吗?
如果是这样,我假设 ijk 是数据集中那些数字的字符串表示形式,由 space 分隔。在我继续之前,我的假设是否准确?
我有一些 MRI 数据,我正在尝试将处理后的 3D 图像作为具有相应标签的数组放入数据框。然后将其保存在 CSV 文件中。 我将每个 3D 图像制作成 161616 数组。
但是,保存CSV文件后,数组似乎并没有完全写入文件。只保存了一部分。
我不确定为什么...
这是我处理 3D 图像的代码:
trainDWI_images=[]
trainDWI_data=[]
for ptname in Train_uniqueID:
if Train_df[(Train_df.ProxID==ptname)&(Train_df.Name =='ep2d_diff_tra_DYNDIST0')].index.tolist() !=[]:
index=Train_df[(Train_df.ProxID==ptname)&(Train_df.Name =='ep2d_diff_tra_DYNDIST0')].index.tolist()
elif Train_df[(Train_df.ProxID==ptname)&(Train_df.Name == 'ep2d_diff_tra_DYNDIST_MIX0')].index.tolist() !=[]:
index=Train_df[(Train_df.ProxID==ptname)&(Train_df.Name =='ep2d_diff_tra_DYNDIST_MIX0')].index.tolist()
ijk_value=Train_df.ijk[index] #lesion location
fid_value=Train_df.fid[index].values #label
for i, ijk in enumerate(ijk_value.values):
seed=[int(x) for x in ijk.split()]
finding=fid_value[i]
for filename in Train_total_DWI:
if ptname in filename:
i=Train_total_DWI.index(filename)
niipath=os.path.join(train_dir,filename)
img_nii=nib.load(niipath)
fourdimage=np.asanyarray(img_nii.dataobj)
image = fourdimage[:, :, :, 0]
img_arr=standardize(image)
extracted_traint2images=img_arr[(seed[0]-8):(seed[0]+8),(seed[1]-8):(seed[1]+8),(seed[2]-8):(seed[2]+8)]#expanding the sub volume from lesion
#print(extracted_traint2images.shape)
trainDWI_images.append(extracted_traint2images)
trainDWI_data.append({'Patient' : ptname , 'label' :finding,'images':extracted_traint2images , 'ijk':seed })
#T2_df=T2_dframe.({'Patient' : ptname , 'label' :fid_value,'images':extracted_t2images , 'ijk':seed } , ignore_index=True)
trainDWI_df = pd.DataFrame(trainDWI_data)
以下是我保存为 CSV 文件的代码:
outtrdwi = 'Packed_DWI_train.csv'
outdir = './dir'
if not os.path.exists(outdir):
os.mkdir(outdir)
fullname = os.path.join(outdir, outtrdwi)
trainDWI_df.to_csv(fullname, encoding='utf-8')
我注意到在我的 CSV 文件中,数组的某些部分未保存并被替换为 '...'
像这样:
[-0.32482308 -0.2481549 -0.2481549 ... -0.2481549 -0.13315264
-0.47815944]
我该如何解决这个问题?谢谢。
我正在努力更好地了解您遇到的问题。查看行:
for i, ijk in enumerate(ijk_value.values):
seed=[int(x) for x in ijk.split()]
finding=fid_value[i]
是[-0.32482308 -0.2481549 -0.2481549 ... -0.2481549 -0.13315264 -0.47815944]
上面'seed'变量的一个例子吗?
如果是这样,我假设 ijk 是数据集中那些数字的字符串表示形式,由 space 分隔。在我继续之前,我的假设是否准确?