###前提・実現したいこと
お世話になります。
「ある地点からある地点までかかった時間を人ごとに出力したい」ということをしたいです。
具体的にはこんな感じです
- xさん、yさん、zさんの三人がいて、地点A,B,Cを通過する、という問題を考える
- 地点A,B,Cにはそれぞれ防犯カメラが置いてあって、画像認識技術を使ってxさん、yさん、zさんをそれぞれ認識できる- 防犯カメラは映っている人数が変わった瞬間、変化後の「映っている人」と「その時の時間」を記録する。たとえば[xさん、yさん、zさん]からzさんが撮像範囲から出て[xさん、yさん]が映った状態に変化したときは、zさんが出た時間とその後の写っている人[xさん、yさん]を記録する
- 誰もいなくなったら「空白」と記録する
- このときにxさん、yさん、zさんごとに出ていった「地点Aを去ってから地点Bを去るまでの時間」「地点Bを去ってから地点Cを去るまでの時間」を計算したい
具体的にはこんなデータがあるとします
time,point,detection 10:00:00,A,x 10:00:00,A,y 10:00:00,A,z 10:00:05,A,x 10:00:05,A,y 10:00:07,A,x 10:01:06,A, 10:01:05,B,z 10:01:05,B,y 10:01:08,B,x 10:01:08,B,y 10:01:08,B,z 10:01:45,B,y 10:01:45,B,z 10:01:55,B,y 10:02:01,B, 10:02:10,C,x 10:02:22,C,x 10:02:22,C,y 10:02:50,C,x 10:02:50,C,y 10:02:50,C,z 10:03:01,C,x 10:03:01,C,y 10:03:02,C,x 10:03:09,C,
データのルールとしては
- time列は撮像された人が変化した時間を記録している。(「10:00:00」にカメラを起動したとする)
- point列は地点A,B,Cのいずれかの地点で撮像されたかを記録している
- detection列は変化した瞬間に映っていた人を記録している。誰もいなければ空欄で表示している
- 「10:00:00」の時点でカメラが起動し、xさん、yさん、zさんが映っているので、行を換えて三人分を記録している。
- 「10:00:05」の時点でzさんが抜けたので、この時点で写っているxさん、yさんを記録している。
- 「10:01:05」の時点で地点Bで「xさん、yさん」が同時に映り込んだので、二人分記録している。
最終的には前回質問させていただいた積み上げ式の棒グラフで示したいと思っていますので、次のように出力できればと思っています。
//最終型(時間は適当に入れています) ,A-B,B-C x,0:00,0:00 y,0:00,0:00 z,0:00,0:00
Forループを駆使すれば出来なくは無いですが、Pythonらしいテクニック使って出来れば、と思っています。
Pandasを使ってマルチスタックやグルーピングなどもやってみましたが,上手く行きませんでした。
(ひどいコードなのでお見せできません・・・)
自分で試してみたことなどを提示出来ていませんが、ぜひともお知恵を借りられればと思います。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。