2

pandas データ フレームの列をループする関数を反復または作成しようとしています。この関数は、各列の値を取得し、より大きなファイルでこれらの値を検索することになっています。次に、これらのターゲット値のランクを抽出し、100 列すべてから取得した値のランク合計を含むベクトルを取得します。

100 列のファイルは、simulation.txt という名前で、次のようになります。

SIM0    SIM1    SIM2    ...SIM100
rs168   rs668   rs228   ...rs930
rs466   rs751   rs109   ...rs216
rs484   rs139   rs636   ...rs755
rs104   rs226   rs1540  ...rs671
rs123   rs377   rs732   ...rs672

検索する必要がある大きなファイルは rs_ranks.txt で、次のようになります。

rsid    Rank
rs168   1
rs464   2
rs485   3
rs110   4
rs129   5
rs297   6
rs139   7
.       .
.       .
.       .
.       .
.       .
rs105   2498509

Simulation.txt から SIM0 を抽出し、rs_ranks.txt で SIM0 から rs 番号のランクを取得したいと考えています。SIM0 列の rs 数値のランクを取得したら、ランクの合計を計算したいと思います。

例: rs_ranks から SIM0 のランクを抽出すると、次のようになります。

    SIM0    Rank
    rs168   1
    rs466   49
    rs484   398208
    rs104   402487
    rs123   2972

SIM0 のランクの合計は、=803717 rank_sum_vector(803717,SIM1_ranksum,SIM2_ranksum,SIM100_ranksum) になります。

最後に、シミュレーション テキストの 100 列すべてに対してこれを実行できるようにしたいので、最終的に 100 列すべてに対応する 100 のランクサム値のランクサム ベクトルが得られます。

助けてください!各列を反復処理してこれを行う関数を作成する方法がわかりません。マージ機能を使用することを考えていましたが、これを行う方法がわかりません。ありがとう!

4

1 に答える 1