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.
, .
. , , , , -.
. .
- .
- , , . , .
? !
, ?
. , 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
, ,
29 - , 1346 - .
, m m+n:
. , , - .
pc , , . , , . , , .
, pc = 0.0062, :
- 257
- 7194
- , +. .. , 2 .
:
pc = 0.0076. :
- 7039
- 209
, . , , , .
, , , : https://colab.research.google.com/drive/1eltee0HilqqVQxpreC9-0w4b08EpMAgM?usp=sharing