2017-11-01 6 views
1

ある任意のインスタンスを削除する必要があります。シーケンスの先頭から、私は私が私のデータセットから始めましょう次のインスタンスから30日未満

基本的に
patient_id        event_description  
      A            DiagnosisA   2016-01-15 
      A            DiagnosisA   2016-02-10 
      A            DiagnosisA   2016-04-20 
      A            DiagnosisA   2016-06-02 
      B            DiagnosisA   2016-08-15 
      B            DiagnosisA   2016-08-20 
      B            DiagnosisA   2016-09-20 
      B            DiagnosisA   2016-10-30 
      C            DiagnosisA   2016-10-15 
      C            DiagnosisA   2016-11-20 
      C            DiagnosisA   2016-11-25 
      C            DiagnosisA   2016-12-30 

、私が必要

  • event_descriptionの1番目のインスタンスと2番目のインスタンスの差を計算し、その差が30未満か30より大きいかどうかを確認します.30より小さい場合は、そのインスタンスを削除します。
  • これは、最終的なサンプルデータセットのような希望

event_descriptionのためにすべてのインスタンスに対して実行する必要があり、patient_idます:

groupbydiff

お知らせを使用して

patient_id        event_description  
      A            DiagnosisA   2016-01-15 
      A            DiagnosisA   2016-04-20 
      A            DiagnosisA   2016-06-02 
      B            DiagnosisA   2016-08-15 
      B            DiagnosisA   2016-09-20 
      B            DiagnosisA   2016-10-30 
      C            DiagnosisA   2016-10-15 
      C            DiagnosisA   2016-11-20 
      C            DiagnosisA   2016-12-30 
+0

あなたがこれまで持っているコードを共有してください。あなたはソリューション全体を求めていますか? – theBrainyGeek

答えて

1

:あなたを変更日付と日時df.value=pd.to_datetime(df.value)

df[~df.groupby('patient_id').value.diff().dt.days.lt(30)] 
Out[754]: 
    patient_id event_description  value 
0   A  DiagnosisA 2016-01-15 
2   A  DiagnosisA 2016-04-20 
3   A  DiagnosisA 2016-06-02 
4   B  DiagnosisA 2016-08-15 
6   B  DiagnosisA 2016-09-20 
7   B  DiagnosisA 2016-10-30 
8   C  DiagnosisA 2016-10-15 
9   C  DiagnosisA 2016-11-20 
11   C  DiagnosisA 2016-12-30 

データ入力

df 
Out[755]: 
    patient_id event_description  value 
0   A  DiagnosisA 2016-01-15 
1   A  DiagnosisA 2016-02-10 
2   A  DiagnosisA 2016-04-20 
3   A  DiagnosisA 2016-06-02 
4   B  DiagnosisA 2016-08-15 
5   B  DiagnosisA 2016-08-20 
6   B  DiagnosisA 2016-09-20 
7   B  DiagnosisA 2016-10-30 
8   C  DiagnosisA 2016-10-15 
9   C  DiagnosisA 2016-11-20 
10   C  DiagnosisA 2016-11-25 
11   C  DiagnosisA 2016-12-30 
+0

素晴らしい解決策、ありがとうございました – madsthaks

+0

@madsthaks yw良い一日を – Wen

関連する問題