<p>使用<a href="http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html" rel="nofollow noreferrer">^{<cd1>}</a>加载数据时,可能需要为制表符分隔的工作表设置<code>sep='\t'</code>。一旦加载了两个数据帧,就可以使用<a href="http://pandas.pydata.org/pandas-docs/stable/generated/pandas.concat.html" rel="nofollow noreferrer">^{<cd3>}</a>或<a href="http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.merge.html" rel="nofollow noreferrer">^{<cd4>}</a>。有关良好的参考,请参见熊猫文档中的<a href="http://pandas.pydata.org/pandas-docs/stable/merging.html" rel="nofollow noreferrer">Merge, join, and concatenate</a>。你知道吗</p>
<p>假设你的两辆tsv是这样的:</p>
<p>文件1:</p>
<pre><code>SampleID RawReads
1 18
2 15
5 21
7 7
</code></pre>
<p>文件2:</p>
<pre><code>SampleID ReadsPost
1 yes
3 no
4 yes
5 yes
</code></pre>
<p><strong>使用合并</p>
<p>Merge可用于在两个dataframe上实现数据库样式的连接。在本例中,我们可以看到SampleID列中的两个数据帧不一致。如果我们想确保从两个帧获得所有数据,我们将使用<code>outer</code>连接。如果我们只需要其中一个的数据,我们可以使用<code>right</code>或<code>left</code>连接,这取决于我们想要保留的内容。这是一个保存一切的例子。你知道吗</p>
<pre><code>df1 = pd.read_csv(file1, sep='\t')
df2 = pd.read_csv(file2, sep='\t')
merge_df = pd.merge(df1, df2, how='outer', on='SampleID')
print(merge_df)
SampleID RawReads ReadsPost
0 1 18.0 yes
1 2 15.0 NaN
2 5 21.0 yes
3 7 7.0 NaN
4 3 NaN no
5 4 NaN yes
</code></pre>
<p><strong>使用Concat</strong></p>
<p>Concat可用于沿行轴或列轴扩展数据帧。假设SampleID是您的索引,您只想沿着列轴将file2到file1中的值连接起来。例如:</p>
<pre><code>df1 = pd.read_csv(file1, sep='\t', index_col='SampleID')
df2 = pd.read_csv(file2, sep='\t', index_col='SampleID')
concat_df = pd.concat([df1, df2], axis=1)
print(concat_df)
RawReads ReadsPost
SampleID
1 18.0 yes
2 15.0 NaN
3 NaN no
4 NaN yes
5 21.0 yes
7 7.0 NaN
</code></pre>
<p>就像我说的看熊猫的资料。这是一个功能强大的库,也是用python处理数据的一个很好的入门。你知道吗</p>