繁体   English   中英

如何使用read_csv从文件导入某些行

[英]How to import certain rows from a file using read_csv

我有一个充满文件的文件夹,其中包含各种模拟结果。 我正在尝试将每个文件中的一行导入数据框。 我一直在使用Pandas的read_csv函数来执行此任务。 以下是我一直在使用的代码:-

p32 = pd.DataFrame()
file_list = glob.glob('*.sts')


for file in file_list:  
    if p32.empty:
         p32 = pd.read_csv(file, sep='\t', skiprows = 9, header = 1, nrows = 1 , skip_blank_lines = True, encoding = 'ISO-8859-1', skipinitialspace = True )
         itz = file.split('.')[0].split('_')[2]
         p32['Iteration'] = itz
    else:
        p32_temp = pd.read_csv(file, sep = '\t', skiprows = 9, nrows = 1, header =1 , encoding = 'ISO-8859-1', skipinitialspace = True )
        itz = file.split('.')[0].split('_')[2]
        p32_temp['Iteration'] = itz
        p32 = pd.concat([p32, p32_temp], axis = 0)
        del p32_temp

问题是,我需要在两个不同的索引位置提取两条不同的线。 第一个位置具有标题(索引= 10),第二个位置包含数据(索引14)。 当我使用上面的代码时,我得到了具有正确列的正确大小的Dataframe。 但是,数据框内部的数据来自错误的列。

我知道我需要更改行列,并且知道可以将列表传递给此参数,但是如何确保其中一个成为标题?

非常感谢。

公吨

我建议一种更简单的方法(可能不是最好的方法)。 这应该工作。

尝试这个:

file_list = glob.glob('*.sts')
run_once = 0
for file in file_list:
    df = pd.read_csv(file, sep = '\t').iloc[[10,14]]
    if run_once == 0:
        frames = df
        run_once = 1
    else:
        frames = pd.concat([frames, df])

让我知道您是否被卡住。 乐意效劳 !!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM