Я пытаюсь читать и манипулировать некоторыми текстовыми файлами, которые у меня есть в качестве выходных данных со статистикой из анализа MRI, который я провел.
С помощью цикла for я хотел бы проиндексировать каждую папку субъектов и преобразовать их текстовый файл со сводной статистикой в data_frame, удалить некоторые ненужные строки и объединить очищенный теперь data_frame каждого субъекта сосновные данные_фрейм.Кажется, я читаю в txt-файле и помещаю его в data_frame.Тем не менее я сталкиваюсь с двумя проблемами, которые я не могу устранить при попытке отбросить строки.
TXT-файл организован так .....
# Title Pathway Statistics
#
# generating_program
/cell_root/software/freesurfer/6.0.0/sys/bin/dmri_pathstats
# cvs_version
Count 2000
Volume 98
Len_Min 67
Len_Max 92
Len_Avg 81.219
Len_Center 87
AD_Avg 0.00152315
AD_Avg_Weight 0.00151198
AD_Avg_Center 0.00141413
Хотя естьодна строка со множеством пробелов, которые могут быть связаны с проблемой с точки зрения чтения данных в?
# cmdline
/cell_root/software/freesurfer/6.0.0/sys/bin/dmri_pathstats --intrc
/homes/dcallow/dti_freesurf/trac/Ex.AES115.long.base_AES115/dpath/fmajor_PP_avg33_mni_bbr --dtbase
/homes/dcallow/dti_freesurf/trac/Ex.AES115.long.base_AES115/dmri/dtifit --path fmajor --subj Ex.AES115.long.base_AES115 --out
/homes/dcallow/dti_freesurf/trac/Ex.AES115.long.base_AES115/dpath/fmajor_PP_avg33_mni_bbr/pathstats.overall.txt --outvox
/homes/dcallow/dti_freesurf/trac/Ex.AES115.long.base_AES115/dpath/fmajor_PP_avg33_mni_bbr/pathstats.byvoxel.txt
Я попытался удалить строку удаления, однако затем я получил другую ошибку, которая возникает ранее вкод, который также является нечетным?
Traceback (последний последний вызов): файл "./txt_2_excel.sh", строка 18, в df = pd.read_table ('pathstats.overall.txt', delim_whitespace = True, names = ['measure', 'value', 'избыточный1', 'избыток2', 'избыток3', 'избыток4']) Файл "/Users/amos/anaconda3/lib/python3.7/site-packages / pandas / io / parsers.py ", строка 678, в parser_f вернуть _read (filepath_or_buffer, kwds) файл" /Users/amos/anaconda3/lib/python3.7/site-packages/pandas/io/parsers.py ", строка 440, в файле _read parser = TextFileReader (filepath_or_buffer, ** kwds) "/Users/amos/anaconda3/lib/python3.7/site-packages/pandas/io/parsers.py ",
строка 787, в файле init self._make_engine (self.engine)" /Users/amos/anaconda3/lib/python3.7/site-packages/pandas/io / parsers.py ", строка 1014, в _make_engine self._engine = CParserWrapper (файл self.f, ** self.options)" /Users/amos/anaconda3/lib/python3.7/site-packages/pandas/io/parsers.py ", строка 1708, в init self._reader = parsers.TextReader (src, ** kwds) Файл" pandas / _libs / parsers.pyx ", строка 384, в pandas._libs.parsers.TextReader. cinit Файл "pandas / _libs / parsers.pyx", строка 695, в файле pandas._libs.parsers.TextReader._setup_parser_source FileNotFoundError: Файл b'pathstats.overall.txt 'не существует1024 *
#!/Users/amos/anaconda3/bin/python
# Pythono3 code to rename multiple
# files in a directory or folder
# importing os module
import os
import pandas as pd
#set working directory to where files are stored
os.chdir("/Volumes/DANIEL/trac_stats")
df_master = pd.DataFrame()
for tract in os.listdir("/Volumes/DANIEL/tract_names/"):
for subj in os.listdir("/Volumes/DANIEL/trac/"):
os.chdir("/Volumes/DANIEL/trac/{0}/dpath/{1}/".format(subj,tract))
os.getcwd()
df=pd.read_table('pathstats.overall.txt', delim_whitespace=True,names=['measure','value','excess1','excess2','excess3','excess4'])
df=df.drop([0,1,2,3,4,5,6,7,8,9,10,11,14,15,16,17,18,20,22,23,25,26,28,29,31,32])
df['subj']=subj
df_master=pd.concat([df_master,df])
print(df_master)
os.chdir("/Volumes/DANIEL/trac_stats/")
df_master.to_excel('trac_stats')
Это должно привести к созданию листа Excel с ['measure','value','excess1','excess2','excess3','excess4']
столбцом и строками 12,13,19,21,24,and 27
данных для каждого предмета в листе Excel с именем trac_stats
.
Я получаюследующая ошибка
Файл "./txt_2_excel.sh", строка 20, в файле "/Users/amos/anaconda3/lib/python3.7/site-packages/pandas/core/frame.py ", строка 3697, по каплеошибки = ошибки) Файл "/Users/amos/anaconda3/lib/python3.7/site-packages/pandas/core/generic.py", строка 3111, по капле obj = obj._drop_axis (метки, ось, уровень = уровень, ошибки = ошибки) Файл "/Users/amos/anaconda3/lib/python3.7/site-packages/pandas/core/generic.py", строка 3143, в _drop_axis new_axis = axis.drop (метки, ошибки = ошибки)Файл "/Users/amos/anaconda3/lib/python3.7/site-packages/pandas/core/indexes/base.py", строка 4404, в отбрасывании '{} не найден в оси' .format (метки [маска])) KeyError: '[32] не найден на оси'