下記の例でいうと、
"2015-01-01 00:06:00" ~ "2015-01-01 00:08:00"、
"2015-01-01 00:15:00" ~ "2015-01-01 00:26:00"、
"2015-01-01 00:36:00" ~ "2015-01-01 00:38:00"
を一つのグループにまとめたい、ということになります。
ちなみに、下記のコードでできましたが、もっとpythonらしい、スマートな書き方をしたいです。
恐らく、pandasのcumsum()でできると思うのですが、コードが思いつきませんでした。
python
1def get_region(mydf): 2 mylist = list(mydf.index) 3 mylabel = [None for x in mylist] 4 l = 0 5 for i in range(len(mylist)-1): 6 curr_time = mylist[i] 7 next_time = mylist[i+1] 8 delta_second = (next_time - curr_time).total_seconds() 9 if delta_second <= 60.1: 10 mylabel[i] = l 11 if (i==len(mylist)-2): 12 mylabel[i+1] = l 13 else: 14 mylabel[i] = l 15 l += 1 16 if (delta_second > 60.1 and i == len(mylist)-2): 17 mylabel[i+1] = l+1 18 return mylabel
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/08 04:34