使用pandas.read_table

时间:2019-05-14 13:53:52

标签: python excel pandas

我正在尝试读取和处理一些文本文件,这些文件是我运行的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]”

0 个答案:

没有答案