前提・実現したいこと
csvで
////////////////////////////////////////////////
1021,2018/07/23 10:05:10,2018/07/23 11:00:10
2352,2018/07/23 10:10:32,2018/07/23 11:12:00
9118,2018/07/23 11:34:55,2018/07/23 15:06:10
5231,2018/07/23 12:33:22,2018/07/23 13:00:10
・
・
・
6448,2018/07/23 17:30:00,2018/07/23 18:54:54
////////////////////////////////////////////////
の様なデータがあり、
前から、ID,入室時間、退出時間となっています。
このデータから5分単位の利用者数を出したいと
下記のプログラムを書いたのですが
利用者数が増えるとかなり処理に時間がかかります。
下記の書き方より早い処理方法等があれば
ご教授いただければと思います、
よろしくお願いいたします。
#CSVの読み込み df = pd.read_csv("riyou.csv", names=('id', 'stat', 'end')) #5分単位の利用者数格納配列 times = []; #開始時間 start = datetime.datetime.strptime('2018/07/23 10:00:00', '%Y/%m/%d %H:%M:%S') #終了チェック時間 end_chk = datetime.datetime.strptime('2018/07/23 19:00:00', '%Y/%m/%d %H:%M:%S') #チェック単位 chk_min = 5 wile True: end = start + datetime.timedelta(minutes=chk_min) df2 = df[(df["start"].apply(lambda x:x.time()) <= start.time()) & (df["end"].apply(lambda y:y.time()) >= end.time())] times.append(str(start) + ',' + str(len(df2.index))) start = end; if start >= end_chk: break; #CSVの書き出し fp = open('time.csv', 'w') for x in times: fp.write(str(x) + "\n") fp.close()
補足情報(FW/ツールのバージョンなど)
Pythoは3.6でWindowsを使用しています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/24 02:05