私は、次のデータフレームを持っている:パンダのデータフレームの選択された行と列にのみ関数を適用するにはどうすればいいですか?
id subid a
1 1 1 2
2 1 1 10
3 1 1 20
4 1 2 30
5 1 2 35
6 1 2 36
7 1 2 40
8 2 2 20
9 2 2 29
10 2 2 30
私はコラム「A」の例パンダの差分()関数のために言い適用したいのですが、「ID」または「サブID」のいずれかである時はいつでも機能を再適用する必要があります変更され、新しい列に値を格納する必要があります。
以下は私が期待しているdfです。
id subid a difference
1 1 1 2 NaN
2 1 1 10 8
3 1 1 20 10
4 1 2 30 NaN
5 1 2 35 5
6 1 2 36 1
7 1 2 40 4
8 2 2 20 NaN
9 2 2 29 9
10 2 2 30 1
それが行4で観察することができ、および行8「ID」または「サブID」のいずれかが変化しているようなので、NaN値が存在し、差分が連続する行で計算されます。
は明らかに列全体ではなく、予想される方法に適用される
df["difference"] = df["a"].diff()
を使用しました。私はgroupbyを使ってみましたが、何とか余分な行を与えています。
事前にお寄せいただきありがとうございます。
はとてもありがとう11行目を持っている場合、これはおそらく動作しません。多く、これはうまくいった。 – Liza
ええ、そうです。 – Liza
あなたはちょうどこの[リンク](http://stackoverflow.com/questions/14631776/calculate-turning-points-pivot-points-in-trajectory-path)を見てみることができます私は検証された答えを実装しようとしていますdfで図示されているのは、座標がnp配列である単一の軌道上にあり、数千の軌道を持つdfを持ち、それぞれが(x、y)座標を持たず、 "id"と "subid"コンボ(上記のように)。 DFに「方向」と「角度」機能を適用する方法を教えてください。それとも私はこれについて質問を作成したいですか? – Liza