したがって、2つのパンダデータフレームがあります。与えられた日付範囲の間のある人のためのすべての日付(df_all_days)は、その人の活動日(df_active_days)のみを持ちます。その人が3日以上連続してアクティブでない場合にのみ、df_all_daysから非アクティブな行を削除したいとします。また、この条件を満たす日付のみを削除し、他の有効期限または無効期日は削除しないでください。Pandas dataframeギャップが3日以上あると行が削除されます
たとえば以下のようになります。 df_all_daysで 'DG-3465'のすべての行を削除すると、2/2 - 2/3の非アクティブな日付は削除されませんが、2/8-2/12の間の非アクティブな日付は削除されません。 はまた、2/9-2/13 'TY-9456' の間
df_all_days
PersonID Date
AB-123 2/1/2016
AB-123 2/2/2016
AB-123 2/3/2016
AB-123 2/4/2016
AB-123 2/5/2016
AB-123 2/6/2016
AB-123 2/7/2016
AB-123 2/8/2016
AB-123 2/9/2016
AB-123 2/10/2016
AB-123 2/11/2016
AB-123 2/12/2016
AB-123 2/13/2016
DG-3465 2/1/2016
DG-3465 2/2/2016
DG-3465 2/3/2016
DG-3465 2/4/2016
DG-3465 2/5/2016
DG-3465 2/6/2016
DG-3465 2/7/2016
DG-3465 2/8/2016
DG-3465 2/9/2016
DG-3465 2/10/2016
DG-3465 2/11/2016
DG-3465 2/12/2016
DG-3465 2/13/2016
TY-9456 2/1/2016
TY-9456 2/2/2016
TY-9456 2/3/2016
TY-9456 2/4/2016
TY-9456 2/5/2016
TY-9456 2/6/2016
TY-9456 2/7/2016
TY-9456 2/8/2016
TY-9456 2/9/2016
TY-9456 2/10/2016
TY-9456 2/11/2016
TY-9456 2/12/2016
TY-9456 2/13/2016
df_active_days
PersonID Date
AB-123 2/1/2016
AB-123 2/2/2016
AB-123 2/3/2016
AB-123 2/7/2016
AB-123 2/8/2016
AB-123 2/9/2016
AB-123 2/10/2016
AB-123 2/11/2016
AB-123 2/12/2016
AB-123 2/13/2016
DG-3465 2/1/2016
DG-3465 2/4/2016
DG-3465 2/5/2016
DG-3465 2/6/2016
DG-3465 2/7/2016
DG-3465 2/13/2016
TY-9456 2/1/2016
TY-9456 2/2/2016
TY-9456 2/3/2016
TY-9456 2/4/2016
TY-9456 2/5/2016
TY-9456 2/6/2016
TY-9456 2/7/2016
TY-9456 2/8/2016
をすべて削除私は両方のDFSをマージしようとしたし、その後のNaNた日付にバックフィル使用します。次に、すべての行に1を加えた列を追加します。日付が同じであり、その後、すべての行を削除した場合、その後の計画はローリング合計を行うことだった合計が3以上であるし、しかし、これは2つの問題、
- を持っていたそれは、最初の2、非アクティブ日
- は削除されません何らかの理由でローリングウィンドウが日付に機能しません。
何を試したことがありますか? –
@ChihebNexusは情報を追加して下部を追加します。 – PyRaider
@Psidomここでお手伝いできますか? – PyRaider