2017-06-07 12 views
0

私は以下の例のように生データを持っています。瞬間t1において、変数は値x1を有する。この変数は、その値がx1と等しくない場合にのみ瞬時t2に記録されるべきである。 Pythonのデータフレームの値を前の値と比較し、同じ場合は削除する方法があります。私は機能に従ってみましたが、機能しません。助けてください。drop_duplicatesの方法

df 
time     Variable Value 
2014-07-11 19:50:20 Var1  10 
2014-07-11 19:50:30 Var1  20 
2014-07-11 19:50:40 Var1  20 
2014-07-11 19:50:50 Var1  30 
2014-07-11 19:50:60 Var1  20 
2014-07-11 19:50:70 Var2  50 
2014-07-11 19:50:80 Var2  60 
2014-07-11 19:50:90 Var2  70 

コーディング:

for y in df.time: 
    for x in df.Value: 
     if y == y: 
      if x == x: 
       df1 = df.drop_duplicates(subset = ['time', 'Variable', 'Value'], keep=False) 
      else: 
       df1 = df.drop_duplicates(['time', 'Variable', 'Value']) 

予想される出力:

df 
time     Variable Value 
2014-07-11 19:50:20 Var1  10 
2014-07-11 19:50:30 Var1  20 
2014-07-11 19:50:50 Var1  30 
2014-07-11 19:50:60 Var1  20 
2014-07-11 19:50:70 Var2  50 
2014-07-11 19:50:80 Var2  60 
2014-07-11 19:50:90 Var2  70 
+0

あなたは99%で、データフレームに 'for'ループ(または任意の他のループ)を適用するとき何かが間違っている。 – DyZ

+0

アイデアはありますか? – NguyenTram

答えて

1
df.drop_duplicates(subset=['Variable','Value'],keep='first') 
#    time Variable Value 
#2014-07-11 19:50:20  Var1  10 
#2014-07-11 19:50:30  Var1  20 
#2014-07-11 19:50:50  Var2  30 
#2014-07-11 19:50:60  Var2  40 
#2014-07-11 19:50:70  Var2  50 
+0

ありがとうございます。だから、3を得ている間になぜ2つのサブセットを取ったのですか? – NguyenTram

+0

あなたは_同じ名前の_変数_を必要としません。 – DyZ

+0

多くのありがとう。あなたの答えは動作しますが、瞬時t3で同じvar1と値3が値1と同じ1つの問題がデータにあります.t1と連続していないので、値3をvar1のt3に保ちたい。私は自分のデータを更新しました。 – NguyenTram