次のような構造の numpy 配列があるとします。
[['a','b','c'],[1,2,3],['i','j','k','l'],[5,10,15,20]]
このようなcsvファイルに保存したい
a, 1, i, 5
b, 2, j, 10
c, 3, k, 15
, , l, 20
長さが短い列は空白で埋められます。どうやってやるの?
使用itertools.izip_longest
:
>>> from itertools import izip_longest
>>> lis = [['a','b','c'],[1,2,3],['i','j','k','l'],[5,10,15,20]]
>>> list(izip_longest(*lis, fillvalue=''))
[('a', 1, 'i', 5),
('b', 2, 'j', 10),
('c', 3, 'k', 15),
('', '', 'l', 20)]
csv.writerows(izip_longest(*lis, fillvalue=''))
これを csv ファイルに書き込むために使用します。