0
私は上記のようなdata.frameを持っています。私は2番目の列の値に基づいて、第1列の値を交換する必要がなく、交換は1列目の数値を継続する必要がある、とするとき!ValB==A
他の列に基づいた列の値を置き換えますが、最初の置換えの数値インデックスに従います
>df1
ValA ValB
1 A
1 A
2 A
2 A
3 A
3 A
4 A
4 A
1 B
1 B
1 B
2 B
2 B
3 B
4 B
4 B
1 C
1 C
2 C
2 C
3 C
3 C
4 C
1 C
だけ私が欲しいのカラム1の値を置き換えますcolumn1の値を置き換えますが、ValB==B
をインデックスとして使用して、ValA
の値を置き換えます。置換は、ValA
の値を続ける必要があります。つまり、1
とValB==B
がある場合は、5
である必要があります。2
は6
などである必要があります。ここに希望の出力があります、私は何をしているのか理解しやすくなります。
所望の出力、Iはif
とelseif
文でループのために行うことができますが、私はクリーンな方法があることを確信しています
>df1
ValA ValB
1 A
1 A
2 A
2 A
3 A
3 A
4 A
4 A
5 B
5 B
5 B
6 B
6 B
6 B
7 B
7 B
8 C
8 C
9 C
9 C
10 C
10 C
11 C
12 C
- それは基本的にValaの1行のValBは、前の行の1に等しいかどうかがわかりますブールベクトルを超える累積和を実行します説明の前の行は第2列のレベルの「ランク」になります。 – DeveauP
Thanks @ TheComeOnMan、あなたの方法は動作します、少し説明できますか? – user2380782
私はコメントを追加しました。あなたが内側から外側に向かって進むなら、あなたは何が起こっているのかを追うことができるはずです。 – TheComeOnMan