2016-11-16 2 views
0

データがあるデータフレームがあるため、時間の経過とともに値の変化を計算したい。パンダの列の変化を計算する

UserId DateTime Value 
    1  1  0 
    1  2  0 
    1  3  0 
    1  4  1 
    1  6  1 
    1  7  1 
    2  1  0 
    2  2  1 
    2  3  1 
    2  4  0 
    2  6  1 
    2  7  1 

スクリプトを実行した後、変更識別子(ユーザーと日付)の列を取得する必要があります。 0から1までの変更だけが面白いです。

UserId DateTime Value IsChanged 
    1  1  0   0 
    1  2  0   0 
    1  3  0   0 
    1  4  1   1 <- Value was changed from 0 to 1 
    1  6  1   0 
    1  7  1   0 
    2  1  0   0 
    2  2  1   1 <- Value was changed from 0 to 1 
    2  3  1   0 
    2  4  0   0 <- Change from 1 to 0 not interesting 
    2  6  1   1 <- Value was changed from 0 to 1 for the user 
    2  7  1   0 

答えて

0

これはどうですか?

# df is your dataframe  
df['IsChanged'] = (df['Value'].diff()==1).astype(int) 

あなたが気に唯一の場合は、値が0の後に前と1中である、あなたは単に値の変化を計算し、それが1

UserId DateTime Value IsChanged 
0  1   1  0   0 
1  1   2  0   0 
2  1   3  0   0 
3  1   4  1   1 
4  1   6  1   0 
5  1   7  1   0 
6  2   1  0   0 
7  2   2  1   1 
8  2   3  1   0 
9  2   4  0   0 
10  2   6  1   1 
11  2   7  1   0 
に等しいかどうかを確認することができますので、
関連する問題