2 つの大きなデータ チャンクがあり、2 つの共通の列がそれらを結び付けています。一方は他方のサブセットである必要がありますが、マージを実行すると、最終的な製品はサブセットよりも小さいため、元の行 (およびサブセット内の行) を見て確認したいと考えています。適切にマージできない理由。おそらく上流のスクリプトのエラーですが、初心者のパンダの使用が間違っている可能性があります。
2 つのデータセットの値を繰り返し処理し、マージされたデータセットにないものを見つけるという明らかな方法で実行できますが、はるかに効率的な「パンダ」の方法があると想定しています。
chip_raw= pandas.read_csv(filename, names=["CHROM", "POS", "GT", "score", "rsid"], sep=" ")
seq_data= pandas.read_csv(seq_filename, names=["CHROM", "POS", "vcf_gt", "gq"], sep="\t")
merged = pandas.merge(chip_raw, seq_data, on=["CHROM", "POS"], how="inner")
データが互いにどのように関連しているかの例を示すために編集しました。CHROM と POS に一意に関連付けられた chip_raw に GT、スコア、rsid があります (これらの 2 つの列が一緒になって一意性を識別します)。次に、別のファイルから取得した vcf_gt と gq があります。マージされていない chip_raw にあるものと、seq_data/merged についても同じものを確認したいと思います。
私はパンダを学んでいるので、パンダを使ってそれを行うことに興味があります.ライブラリが各アイテムを反復してマージされているかどうかを確認するよりも効率的に行うようです.