一、问题描述
本人Python初学者。想用python读取csv文件,然后修改数据再按原格式导出,主要问题是如何按原格式导出?文件格式如下:
numlog:50 Form 837.000 to 837.350 rlev:0.050
AAA BBB CCC DDD
837.000 837.0000 413.0964 21.8307
837.050 837.0500 414.1302 21.8374
837.100 837.1000 414.1225 21.8441
837.150 837.1500 414.3120 21.8510
837.200 837.2000 414.7883 21.8508
837.250 837.2500 415.3184 21.8507
837.300 837.3000 415.4753 21.8506
837.350 837.3500 415.7533 21.8471
文件扩展名是dat,行间回车分隔,行内空格分隔,数据间空格数量不固定,比对后发现有个规律,就是每个数据分配11个字符,起始字符是一个空格,然后接数据,再后面接空格直至满11个字符。现在的问题是不知道如何才能生成这种格式的文件
二、问题相关代码
import pandas as pd
path1= 'D:\CS.dat' #导入路径
path2= 'D:\CS_X.dat' #导出路径
df=pd.read_csv(path1, sep='\s+',header=1) #header-表头
idx=df.query('CCC>=414 & DDD>=21.84').index #获取满足条件的索引
df.loc[idx,'DDD']=20.0000 #按索引给符合条件的行中相应字段赋值
print(df[['BBB','CCC']]) #取多列时需要两层[]
df.to_csv(path2,index=0,sep=',',float_format='%11.4f') #将修改后的文件导出
三、需要达到的预期
基本需求是:导出和原文件格式相同的CSV文件。
具体有几个需要解决的细节:
①sep参数怎么写,上面代码中暂时使用逗号分隔符;
②如何实现数据前留出一个空格,数据后空格补齐,直到达到11个字符
③作为基本信息描述的第一行,如何按原文件格式加入到导出的文件中