Wie ich meine Taxifahrten analysiert habe

Jedes Mal, wenn ich ein Taxi nehme, kommt ein Reisebericht mit anderen Informationen per Post. Insbesondere enthalten sie Datum, Uhrzeit der Reise, Automodell und Fahrernamen. Mir kam die Idee, Berichte von Yandex Taxi zu analysieren und die interessantesten Informationen daraus zu gewinnen. Sie haben sich wahrscheinlich auch immer gefragt, wie oft Sie dasselbe Auto gefahren sind oder wie oft Sie von demselben Fahrer gefahren wurden?





Die hier beschriebene Aufgabe kann eine gute Übung für unerfahrene Analysten sein. Alles wird hier sein: Python mit Pandas und HTML-Analyse sowie reguläre Ausdrücke und Datenbanken mit SQL.





Wir bekommen Informationen

Dies ist der uninteressante Teil. Hier werde ich beschreiben, wie ich Informationen aus der Mailbox abgerufen habe, um den Code zu sehen. Am Ende werde ich einen Link zum Python-Laptop anhängen. Am einfachsten war es, das Postfach im * .mbox-Format zu entladen. Es ist einfacher als mit der Google Mail-API umzugehen, und meine Mailbox ist da. Dadurch werden nicht automatisch Fahrten hinzugefügt, die nach dem Entladen stattgefunden haben. Für unsere Zwecke ist dies jedoch nicht kritisch.





Um das Archiv zu analysieren, verwenden wir die Postfachbibliothek. Sie können über das Postfach auf die grundlegenden Eigenschaften jeder Nachricht zugreifen, einschließlich des Absenders und des Nachrichtentexts.





Nachdem wir die erforderlichen Buchstaben ausgewählt haben, nämlich diejenigen, die vom Absender tax.yandex.ru stammen, haben wir sofort ein Problem. Yandex ändert regelmäßig die Struktur seiner Berichte. Die Struktur hat sich jedoch in diesem Jahr einmal global geändert. Vorher waren alle Informationen über die Reise nur in Form eines festen Textes, jetzt in Form einer Tabelle. Daher musste ich zwei separate Funktionen schreiben, um Informationen zu extrahieren: Wenn die Nachricht Informationen in Form von Volltext enthält, finden wir die benötigten Informationen einfach mithilfe von regulären Ausdrücken mithilfe von Masken. Wenn in Form einer Tabelle, dann analysieren wir den HTML-Code des Buchstabens mit schöner Suppe. Wir laden die erhaltenen Daten in einen Datenrahmen und eine Cloud-Datenbank, damit wir später nicht bei jedem Eintritt die gesamte Box zurückspulen müssen.





Ausflüge beobachten

Nachdem Sie die Daten in strukturierter Form erhalten haben, ist es interessant, die Statistiken zu sehen.





, .





Die Reisekosten ändern sich im Laufe der Zeit

. , , , , -.





Ein schmaler Gipfel - der zur Arbeit geht, ein breiter - von der Arbeit.
- , - .

. .





- .





- , , . , .









? !

, ?





. , 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 . .





Verteilung der Intervalle zwischen Fahrten mit einem wiederkehrenden Fahrer

, , , , 29 , .





, , , , . , , , , .





Zuordnung von Lücken zwischen Fahrten mit sich wiederholenden Autos

:





 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