我正在尝试根据一系列数据生成csv文件:int、float、string、string列表、float列表:
temp = 15.3
id = '98'
tags = ['b34s', '7eo9', '7w49']
hum = 1.89
x_data = [32,87,87,742,342,7.2,992,...]
y_data = [65.3,89.7,458.8,589,529,8789,489,...]
x\u数据和y\u数据列表可能有数千个元素。我希望生成的文件如下所示:
|temp|id|tags|hum.|x_data|y_data|
|15.3|98|b34s|1.89| 32| 65.3|
| | |7eo9| | 87| 89.7|
| | |7w49| | 87| 458.8|
| | | | | 742| 589|
| | | | | 342| 529|
| | | | | 7.2| 8789|
| | | | | 992| 489|
| | | | | ...| ...|
如您所见,csv由列组成。有些列只包含一段数据,有些则包含更多。我试图通过使用csv库来实现这一点。但是,由于要存储的数据类型不同,writerow方法似乎不合适。我试过使用pandas,但是在添加不同长度的列时遇到了问题。要么该列最终由我提供的一个值填充(在本例中,只有第一行应该是),要么其余的行由NaN填充
你能建议如何解决那个问题吗
如果您拥有的一切都是可编辑的,那么您可以使用itertools库
Python2.7中有一个函数izip\u longest,Python3.x中有一个函数zip\u longest。此函数接受iterables并返回一个生成器,该生成器将一直运行,直到最长iterables中的最后一个值用完为止。您可以找到文档here for itertools in 2.7
这个函数有一个
fillvalue
参数,让您选择要用哪个值填充空的值可以将返回的生成器直接传递给
csv.writerows
函数相关问题 更多 >
编程相关推荐