の列をシフトして:塗りつぶし値は私はこのように見てパンダのデータフレームを持っているパンダのデータフレーム
sequence positions
0 - 8
1 N 9
2 M 10
3 S 11
4 L 12
5 V 13
6 - 14
7 E 15
8 T 16
9 V 17
10 D 18
配列の列(アミノ酸配列)でギャップを示す文字(アミノ酸コード)とダッシュがあり、列の位置で、私はそれらのアミノ酸の位置を入れたいと思います。それらは数字のシーケンス(この場合は8から始まる)なので、range()
を使用して列を生成します。しかし、この番号は、アミノに関するものであり、ギャップではありません。列の位置はダッシュで満たされ、それに応じてシフトする必要があります。
sequence positions
0 - -
1 N 8
2 M 9
3 S 10
4 L 11
5 V 12
6 - -
7 E 13
8 T 14
9 V 15
10 D 16
だから、私は行を反復処理し、このmodifictationをやって思ったが、パンダのマニュアルでは、それは悪いアイデアだと言います。おそらくいくつかの機能を作り、パンダapply
とshift
と組み合わせると問題は解決しますが、どうやってそれを行うのか分かりません。ここで
こんにちはミカルは、あなたがデータフレームでダッシュを維持する必要がありますか?そうでなければ、最初に 'sequence'からすべてのダッシュを削除し、新しい' position'カラムを 'range(0、n)'として作成することができます – VinceP
ええ、それは速くて簡単ですが、この場合の全体のポイントは保存することですコードとダッシュの両方のインデックスとコードのみのインデックスを使用しています。 –