web-dev-qa-db-ja.com

pandas dataframeで列の値がいつ変化するかを判断する

2つの列を含むcsvファイルを実行して、列Bの値がある値から別の値に切り替わる行を提供する簡単なスクリプトを作成しようとしています。

例えば:

データフレーム:

# |  A  |  B  
--+-----+-----
1 |  2  |  3
2 |  3  |  3
3 |  4  |  4
4 |  5  |  4
5 |  5  |  4

行2と行3の間で変更が発生したことがわかります。forループを使用してこれらの値を取得する方法は知っていますが、この問題に対処するよりPython的な方法があったことを望んでいました。

16
badrobit

違いの新しい列を作成できます

> df['C'] = df['B'].diff()
> print df
   #  A  B   C
0  1  2  3 NaN
1  2  3  3   0
2  3  4  4   1
3  4  5  4   0
4  5  5  4   0

> df_filtered = df[df['C'] != 0]
> print df_filtered
   #  A  B  C
2  3  4  4  1

これは必要な行になります

24