Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将数据放入Python以在CSV中使用-不同的采样率_Python_Csv - Fatal编程技术网

将数据放入Python以在CSV中使用-不同的采样率

将数据放入Python以在CSV中使用-不同的采样率,python,csv,Python,Csv,我有一些MAT文件,我想输出为CSV。如果我放弃,我可以将它们保存为.txt,但我真的希望知道如何在CSV中实现这一点 我的问题是,对于不同的通道,我有不同的时间戳。我相信我有一些低至.5hz的频道,还有一些在10Hz左右。不过,他们似乎没有排好队。有人建议执行零阶保持(我不知道如何执行),但由于我将以“未加修饰”的方式发布这些数据,所以我并不想调整时间戳 channels = [] for key in matfile.keys(): if key.startswith('CAN')

我有一些MAT文件,我想输出为CSV。如果我放弃,我可以将它们保存为.txt,但我真的希望知道如何在CSV中实现这一点

我的问题是,对于不同的通道,我有不同的时间戳。我相信我有一些低至.5hz的频道,还有一些在10Hz左右。不过,他们似乎没有排好队。有人建议执行零阶保持(我不知道如何执行),但由于我将以“未加修饰”的方式发布这些数据,所以我并不想调整时间戳

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]))