<p>使用<a href="http://pandas.pydata.org/" rel="nofollow">pandas</a>:</p>
<pre><code>import pandas as pd
import re
A = pd.read_csv('FileA', delimiter = r'\s+')
B = pd.read_csv('FileB', delimiter = r'\s+')
A = A.set_index(['ProbeID'])
B = B.set_index(['ProbeID'])
C = pd.concat([A,B], axis = 1)
idx = C['call'] == 0
C['alleleB'][idx] = C['alleleA'][idx]
idx = C['call'] == 2
C['alleleA'][idx] = C['alleleB'][idx]
print(C[['call', 'alleleA', 'alleleB']])
</code></pre>
<p>收益率</p>
^{pr2}$
<hr/>
<p>如果您有许多Bfiles,您可以使用如下方法:</p>
<pre><code>import pandas as pd
import re
A = pd.read_csv('FileA', delimiter = r'\s+')
A = A.set_index(['ProbeID'])
BFiles = ['FileB1', 'FileB2', 'FileB3']
for i, bfile in enumerate(BFiles):
B = pd.read_csv('FileB', delimiter = r'\s+')
B = B.set_index(['ProbeID'])
C = pd.concat([A,B], axis = 1)
idx = C['call'] == 0
C['alleleB'][idx] = C['alleleA'][idx]
idx = C['call'] == 2
C['alleleA'][idx] = C['alleleB'][idx]
cfile = 'FileC{i}'.format(i = i)
with open(cfile, 'w') as f:
f.write(C[['call', 'alleleA', 'alleleB']])
</code></pre>
<p>将<code>cfile</code>更改为适当的值。在</p>