Python 从转换的RINEX文件格式化csv文件和/或数据帧列
从转换的RINEX文件格式化csv文件和/或数据帧列 我正在尝试在写入csv文件之前格式化数据帧。我遇到的第一个问题是从RINEX文件的日期/时间中剥离输出,以便只给出时间:Python 从转换的RINEX文件格式化csv文件和/或数据帧列,python,csv,gps,dataframe,Python,Csv,Gps,Dataframe,从转换的RINEX文件格式化csv文件和/或数据帧列 我正在尝试在写入csv文件之前格式化数据帧。我遇到的第一个问题是从RINEX文件的日期/时间中剥离输出,以便只给出时间: L1 L2 P1 P2 C1 S1 S2 2014-04-27 00:00:00 2014-04-27 00:00:30 此外,应对齐上述列标题(这些标题基本上代表卫星上的信号)。我的csv文件中的以下输出也要格式化,以使列例如右对齐,因此笔
L1 L2 P1 P2 C1 S1 S2
2014-04-27 00:00:00
2014-04-27 00:00:30
此外,应对齐上述列标题(这些标题基本上代表卫星上的信号)。我的csv文件中的以下输出也要格式化,以使列例如右对齐,因此笔直
2014-04-27 05:01:30 -993864.147 -769167.945 23638879.454 23638880.731 23638879.193 47.0 42.0
2014-04-27 05:02:00 -1093051.608 -846456.845 23620004.727 23620005.748 23620003.334 47.0 42.0
2014-04-27 05:02:30 -1192060.664 -923606.729 23601163.403 23601164.435 23601163.315 47.0 42.0
2014-04-27 05:03:00 -1290882.849 -1000611.009 23582358.959 23582360.179 23582359.429 47.0 42.0
2014-04-27 05:03:30 -1389517.149 -1077468.879 23563589.575 23563590.085 23563590.032 47.0 42.0
2014-04-27 05:04:00 -1487961.416 -1154178.674 23544856.908 23544857.096 23544856.147 46.0 42.0
到目前为止,我使用的代码是:
def读取_数据(自身、RINEXfile):
obs_数据_块=[]
while True:
obss, _, _, epochs, _ = self.read_data_chunk(RINEXfile)
if obss.shape[0] == 0:
break
obs_data_chunks.append(pd.Panel(
np.rollaxis(obss, 1, 0),
items=['G%02d' % d for d in range(1, 33)],
major_axis=epochs,
minor_axis=self.obs_types
).dropna(axis=0, how='all').dropna(axis=2, how='all'))
obs_data_chunks_dataframe = obs_data_chunks[0]
for sv in range(32):
sat = obs_data_chunks_dataframe[sv, :]
#print "sv_data: {0}".format(sat)
#sat[0] = sat[0].apply(pd.datetools.normalize_date)
sat.to_csv(('sv_data_{0}').format(sv), sep='\t')
#pd.set_option('display.max_rows', 2900)
注释掉的代码描述了我到目前为止使用的策略,但失败了。在哪里可以改进代码以执行这些任务?我是在数据帧(即“sat”)上还是在生成的文件(即“sv_数据{0}”)上执行格式化?要输出带分隔符的文件还是固定宽度的文件?您谈到的csv是分隔的,但您也谈到了字段的对齐方式,就像您使用固定宽度时一样。是哪一个?@StevenRumbalski是的,实际上我想要固定宽度的列,因此对齐,但用空格分隔。谢谢