pandas.read_csv
を使用してデータをロードする場合は、タブ区切りシートにsep='\t'
を設定する必要があります。 2つのDataFramesをロードしたら、pandas.concat
またはpandas.merge
を使用できます。適切なリファレンスについては、PandasのドキュメントのMerge, join, and concatenateを参照してください。
さんは次のようになり、あなたの2 TSV」を言ってみましょう:
FILE1:
SampleID RawReads
1 18
2 15
5 21
7 7
FILE2:マージ使用
SampleID ReadsPost
1 yes
3 no
4 yes
5 yes
マージを実装するために使用することができます
2つのデータフレームにデータベーススタイルが結合されます。この例では、2つのDataFramesがSampleID列で一致していないことがわかります。両方のフレームからすべてのデータを取得したい場合は、outer
を使用します。データを必要とする場合は、私たちが保持したいものに応じてright
またはleft
を使うことができます。ここにはすべてを保つための例があります。連結方式は、行または列のいずれかの軸に沿ってデータフレームを拡張するために使用することができる連結方式
を使用
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
。 SampleIDがあなたのインデックスであったとし、file2の値を列軸に沿ってfile1に連結したいとしましょう。例:
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
私はパンダのドキュメントを読んだと言いました。それは非常に強力なライブラリであり、Pythonでデータを扱う素晴らしいイントロです。
出典
2017-04-06 15:31:52
Grr
ありがとうございます!どちらの答えも完璧に働いた。私はpandasオプションを使用したので、RawReadsとReadsPostでグループ化された棒グラフをmatplotlibで構築することができました。 –