[英]pandas assign value to more than one columns based on a condition using more than 20 columns
[英]Write many columns (more than 20)
我想知道一种使用 Python 将许多列写入单个文件的有效且简单的方法。
例如,我有a
和b
arrays,N 行的大小为 20。 每行都有不同a
和b
。
我想写一个格式如下的文件:
每列的名称
0 a[0] b[0] a[1] b[1] ... a[19] b[19]
1 a[0] b[0] a[1] b[1] ....a[19] b[19]
我只能这样想:
data = open(output_filename,'w')
for i in range(0, N):
data.write('{} {} {} ...\n'.format(i, a[0], b[0], ....))
import numpy
#Assuming a, b are numpy arrays, else convert them accordingly:
# a= np.array(a)
# b= np.array(b)
c = np.zeros((100,40))
for i in range(20):
c[:, 2*i] = a[:,i]
c[:, 2*i+1] = b[:,i]
np.savetxt("test.txt",c)
这是我能想到的最简单的方法。
如果我理解正确,您想交错两个列表。 您可以使用zip
和一些后处理来做到这一点:
>>> a = ['a', 'b', 'c']
>>> b = ['d', 'e', 'f']
>>> print(list(zip(a, b)))
[('a', 'd'), ('b', 'e'), ('c', 'f')]
>>> from itertools import chain
>>> print(list(chain.from_iterable(zip(a, b))))
['a', 'd', 'b', 'e', 'c', 'f']
>>> print(' '.join(chain.from_iterable(zip(a, b))))
a d b e c f
你可能想应用这样的东西:
data.write('{} {}\n'.format(i, ' '.join(chain.from_iterable(zip(a, b)))))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.