フィールド 'MachineName'、 'LocalIPAddress'に基づいてデータフレームをグループ化し、各グループの連続する日付の差分を検索します。日付差分はdiff()を使用して
df2 = df.groupby(['MachineName', 'LocalIPAddress', 'DateTime'])['DateTime'].agg(
['count']).reset_index()
df2['DateTime'] = pd.to_datetime(df2['DateTime'])
df2['timedif'] = df2['DateTime'].diff()
これは、最初のグループに適していますが、2番目のグループのために、それは最初から起動しない、むしろそれは別のグループであり、その前のレコードの日時から日時を減算します。
サンプルデータ:
MachineName LocalIPAddress DateTime count timedif
0 BMTSAFT04 10.18.0.186 2016-04-13 03:42:29.865 1 NaT
1 BMTSAFT04 10.18.0.186 2016-04-13 08:48:33.005 1 05:06:03.140000
2 BMTSAFT04 10.18.0.186 2016-04-13 10:16:28.612 1 01:27:55.607000
3 BMTSAFT04 10.18.0.186 2016-04-13 10:31:33.343 1 00:15:04.731000
4 BMTSAFT04 10.18.0.186 2016-04-13 23:43:12.068 1 13:12:56.580000
5 BMTSYSP05 10.20.9.253 2016-04-13 06:08:53.584 1 -1 day +06:25:41
6 BMTSYSP05 10.20.9.253 2016-04-13 12:01:57.563 1 05:53:03.979000
5行目は、異なるグループに属しているので、時間差が-1 day +06:25:41
されるべきではなく、それがNATなければなりません。私は、各グループに適用される相違のロジックが必要です。
ご協力いただければ幸いです!
@ user3447653あなたは何をしようとしていたのですか? – Thanos