[英]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.