タクシーの乗り物を分析した方法

タクシーに乗るたびに、さまざまな情報が記載された旅行レポートがメールで届きます。特に、日付、移動時間、車のモデル、ドライバーのフルネームが含まれています。Yandex Taxiからのレポートを分析し、それらから最も興味深い情報を取得するというアイデアが思い浮かびました。あなたも、同じ車を何回運転したのか、同じドライバーが何回あなたを連れて行ったのか、いつも疑問に思っていたでしょう。





ここで概説するタスクは、初心者のアナリストにとっては良い演習になる可能性があります。パンダとHTML解析を備えたpython、SQLを備えた通常の式とデータベースなど、すべてがあります。





情報を得る

これは面白くない部分です。ここでは、メールボックスから情報を取得する方法について説明し、最後にコードを確認して、Pythonラップトップへのリンクを添付します。最も簡単な方法は、メールボックスを* .mbox形式でアンロードすることでした。gmail apiを扱うよりも簡単で、私のメールボックスはそこにあります。これにより、アンロード後のトリップが自動的に追加されることはありませんが、私たちの目的では、これは重要ではありません。





アーカイブを解析するために、メールボックスライブラリを使用します。送信者やメッセージ本文など、メールボックスから各メッセージの基本的なプロパティにアクセスできます。





必要な文字、つまり送信者taxi.yandex.ruからの文字を選択した後、すぐに問題が発生します。Yandexは、レポートの構造を定期的に変更しています。しかし、今年は世界的に一度構造が変わった。それまでは、旅行に関するすべての情報は無地のテキストの形式でしたが、現在は表の形式で形成されています。したがって、情報を抽出するために2つの別々の関数を作成する必要がありました。文字にソリッドテキストの形式の情報が含まれている場合、マスクを使用した正規表現を使用して必要な情報を見つけるだけです。テーブル形式の場合は、美しいスープを使用して文字のHTMLコードを解析します。取得したデータをデータフレームとクラウドデータベースにロードして、後で入場ごとにボックス全体を巻き戻す必要がないようにします。





旅行を見る

構造化された形式でデータを受け取ったので、統計を見るのは興味深いことです。





, .





時間の経過に伴う旅費の変化

. , , , , -.





狭いピーク-仕事に出る、広いピーク-仕事から。
- , - .

. .





- .





- , , . , .









? !

, ?





. , 24 , . . , , , . .





:





3 , , .





DATE





NAME





CAR





CAR_MODEL





NUMBER





NAME_HASH





2020-06-23









Toyota





Camry





37077





-2596682743997844296





2020-06-17









Toyota





Camry





37077





-2596682743997844296





2020-06-05









Toyota





Camry





37077





-2596682743997844296





2019-11-27









Toyota





Camry





37077





-1058569546058211362









, , - , . , , .





DATE





TARIF





NAME





CAR





CAR_MODEL





NUMBER





NAME_HASH





2017-10-11













Hyundai





i40





20377





7008433025181534578





2020-04-16





+









Toyota





Camry





67877





7008433025181534578





2018-04-11













Kia





Rio





67077





-2646868843695703984





2020-04-17





+









Kia





Optima





58777





-2646868843695703984





, , 150-200 . .





定期的なドライバーとの旅行間の間隔の分布

, , , , 29 , .





, , , , . , , , , .





リピートカーでの旅行間のギャップの割り当て

:





 pc - 1 , m 





P = \ frac {1} {N}(1-p_c)^ m

, ,





\ frac {1} {N * p_c} = \ frac {29} {1346}

29 - , 1346 - .





, m m+n:





P_ {m、m + n} = \ frac {(1-p_c)^ m} {N} * \ frac {1-(1-p_c)^ {m + n}} {p_c}

. , , - .





 pc  , , . , , . , , .





, pc = 0.0062, :





  • - 257





  • - 7194





- , +. .. , 2 .





:





pc = 0.0076. :





  • - 7039





  • - 209





, . , , , .





, , , : https://colab.research.google.com/drive/1eltee0HilqqVQxpreC9-0w4b08EpMAgM?usp=sharing








All Articles