在python中对两个文件逐列求和
我有两个大小和列数完全相同的文件。我想将第一个文件的第I^列添加到第二个文件的第I^列。它们是用python实现这一点的好方法吗在python中对两个文件逐列求和,python,python-2.7,text,Python,Python 2.7,Text,我有两个大小和列数完全相同的文件。我想将第一个文件的第I^列添加到第二个文件的第I^列。它们是用python实现这一点的好方法吗 file1 a a a a a a a a a a a a a a a a a a file2 b b b b b b b b b b b b b b b b b b 我想: (a+b) (a+b) (a+b) (a+b) (a+b) (a+b) (a+b) (a+b) (a+b) (a+b) (a+b) (a+b) (a+b) (a+b) (a+b) (a+b)
file1
a a a a a a
a a a a a a
a a a a a a
file2
b b b b b b
b b b b b b
b b b b b b
我想:
(a+b) (a+b) (a+b) (a+b) (a+b) (a+b)
(a+b) (a+b) (a+b) (a+b) (a+b) (a+b)
(a+b) (a+b) (a+b) (a+b) (a+b) (a+b)
编辑:以上只是我的一个更复杂问题的简化。每个文件都有数千行,我有许多文件(~100)可以执行此类操作。对于此类操作,数据帧是一个很好的选择。它允许对整个数据帧(矩阵)进行操作,例如
df\u one.添加(df\u two)
1将文件中的数据读取到数据帧中:(示例:)
2如图所示添加两个数据帧:我认为这将对您有所帮助
with open("file1") as a, open("file2") as b:
x = [[int(i) for i in u.split()] for u in a.readlines()]
y = [[int(i) for i in v.split()] for v in b.readlines()]
n = len(x)
m = len(x[0])
ans = ""
for i in xrange(n):
for j in xrange(m):
ans += str(x[i][j]+y[i][j]) + " "
print ans[:-1]
ans = ""
您可以使用
numpy.loadtxt()
:
它将接受您想要的元素级字符串连接,甚至更多:
print('('+a+'+'+b+')')
#array([['(a+b)', '(a+b)', '(a+b)', '(a+b)'],
# ['(a+b)', '(a+b)', '(a+b)', '(a+b)'],
# ['(a+b)', '(a+b)', '(a+b)', '(a+b)']], dtype=object)
print(a+b)
#array([['ab', 'ab', 'ab', 'ab'],
# ['ab', 'ab', 'ab', 'ab'],
# ['ab', 'ab', 'ab', 'ab']], dtype=object)
print(3*a)
#array([['aaa', 'aaa', 'aaa', 'aaa'],
# ['aaa', 'aaa', 'aaa', 'aaa'],
# ['aaa', 'aaa', 'aaa', 'aaa']], dtype=object)
请向我们展示您的尝试。如果需要,请安装
pip install pandas
a = np.loadtxt('a.txt', dtype=object)
b = np.loadtxt('b.txt', dtype=object)
print('('+a+'+'+b+')')
#array([['(a+b)', '(a+b)', '(a+b)', '(a+b)'],
# ['(a+b)', '(a+b)', '(a+b)', '(a+b)'],
# ['(a+b)', '(a+b)', '(a+b)', '(a+b)']], dtype=object)
print(a+b)
#array([['ab', 'ab', 'ab', 'ab'],
# ['ab', 'ab', 'ab', 'ab'],
# ['ab', 'ab', 'ab', 'ab']], dtype=object)
print(3*a)
#array([['aaa', 'aaa', 'aaa', 'aaa'],
# ['aaa', 'aaa', 'aaa', 'aaa'],
# ['aaa', 'aaa', 'aaa', 'aaa']], dtype=object)