我正在尝试读取和处理一些文本文件,这些文件是我运行的MRI分析的统计数据输出。
通过for循环,我想索引到每个主题文件夹,并将其带有摘要统计信息的txt文件转换为data_frame,删除一些不必要的行,并将每个主题的现在已清理的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
我尝试删除了放置行,但是随后我又得到了另一个错误,该错误在代码中更早发生了吗?
回溯(最近通话最近): 在第18行的文件“ ./txt_2_excel.sh” df = pd.read_table('pathstats.overall.txt',delim_whitespace = True,names = ['measure','value','excess1','excess2','excess3','excess4']) 文件“ /Users/amos/anaconda3/lib/python3.7/site-packages/pandas/io/parsers.py”, parser_f中的第678行 返回_read(filepath_or_buffer,kwds) 文件“ /Users/amos/anaconda3/lib/python3.7/site-packages/pandas/io/parsers.py”, _read中的第440行 解析器= TextFileReader(filepath_or_buffer,** kwds) 文件“ /Users/amos/anaconda3/lib/python3.7/site-packages/pandas/io/parsers.py”,
第787行,初始化 self._make_engine(self.engine) 文件“ /Users/amos/anaconda3/lib/python3.7/site-packages/pandas/io/parsers.py”, _make_engine中的第1014行 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.TextReader中,文件“ pandas / _libs / parsers.pyx”,第384行。 cinit 在pandas._libs.parsers.TextReader._setup_parser_source中的文件“ pandas / _libs / parsers.pyx”,行695 FileNotFoundError:文件b'pathstats.overall.txt'不存在
#!/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,在drop errors = errors中) “ /Users/amos/anaconda3/lib/python3.7/site-packages/pandas/core/generic.py”, 第3111行,在放置obj = obj._drop_axis(labels,axis,level = level, 错误=错误)文件 “ /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(labels [mask])) KeyError:“在轴中找不到[32]”