将数据放入Python以在CSV中使用-不同的采样率
我有一些MAT文件,我想输出为CSV。如果我放弃,我可以将它们保存为.txt,但我真的希望知道如何在CSV中实现这一点 我的问题是,对于不同的通道,我有不同的时间戳。我相信我有一些低至.5hz的频道,还有一些在10Hz左右。不过,他们似乎没有排好队。有人建议执行零阶保持(我不知道如何执行),但由于我将以“未加修饰”的方式发布这些数据,所以我并不想调整时间戳将数据放入Python以在CSV中使用-不同的采样率,python,csv,Python,Csv,我有一些MAT文件,我想输出为CSV。如果我放弃,我可以将它们保存为.txt,但我真的希望知道如何在CSV中实现这一点 我的问题是,对于不同的通道,我有不同的时间戳。我相信我有一些低至.5hz的频道,还有一些在10Hz左右。不过,他们似乎没有排好队。有人建议执行零阶保持(我不知道如何执行),但由于我将以“未加修饰”的方式发布这些数据,所以我并不想调整时间戳 channels = [] for key in matfile.keys(): if key.startswith('CAN')
channels = []
for key in matfile.keys():
if key.startswith('CAN'):
channels.append(str(key) + '_time')
channels.append(key)
output = {}
for channel in channels:
if channel.endswith('_time'):
channel_time = channel[0:-5]
output[channel] = matfile[channel_time].item()[6]
else:
output[channel] = matfile[channel].item()[7].item()[0]
with open(path_plus_title, 'wb') as outfile:
writer = csv.writer(outfile)
writer.writerow(channels)
writer.writerows(zip(*(output[k] for k in channels)))
这只提供了我想要的通道,按通道时间戳和通道的顺序排列……但在到达最短数据列的末尾后,它停止写入
我想在较短的列中填充空格、零或任何东西,以保持数据的直线性,并清楚地表明这就是数据的结尾。是否有一种我错过的列式方法呢?尝试使用。它提前结束的原因是zip在第一个迭代器结束时结束,但izip_用默认值缓冲较短的迭代器,这与您想要的完全一样。Perfect!非常感谢。writer.writerows(itertools.izip_longest(*(通道中k的输出[k]))