في كل مرة أستقل فيها سيارة أجرة ، يأتي إلى بريدي تقرير رحلة بمعلومات مختلفة. على وجه الخصوص ، تحتوي على تاريخ ووقت السفر وطراز السيارة واسم السائق. جاءتني فكرة - لتحليل التقارير من Yandex Taxi والحصول على المعلومات الأكثر إثارة للاهتمام منها. ربما تساءلت دائمًا أيضًا عن عدد المرات التي قادت فيها نفس السيارة أو كم مرة أخذك نفس السائق؟
يمكن أن تكون المهمة الموضحة هنا تمرينًا جيدًا للمحللين المبتدئين. سيكون هناك كل شيء: Python مع الباندا وتحليل HTML والتعبيرات العادية وقواعد البيانات مع SQL.
نحصل على المعلومات
هذا جزء غير ممتع ، هنا سأصف كيف استرجعت المعلومات من صندوق البريد ، لرؤية الكود في النهاية سأرفق رابطًا بجهاز الكمبيوتر المحمول Python. كانت أسهل طريقة هي تفريغ صندوق البريد بتنسيق * .mbox. إنه أسهل من التعامل مع gmail api ، وصندوق بريدي موجود. لن يؤدي هذا تلقائيًا إلى إضافة الرحلات التي كانت بعد التفريغ ، ولكن هذا ليس بالغ الأهمية لأغراضنا.
من أجل تحليل الأرشيف ، سنستخدم مكتبة صندوق البريد. سيسمح لك بالوصول إلى الخصائص الأساسية لكل رسالة من صندوق البريد ، بما في ذلك المرسل ونص الرسالة نفسها.
بعد اختيار الحروف اللازمة ، أي تلك التي جاءت من taxi.yandex.ru المرسل ، نواجه مشكلة على الفور. تقوم Yandex بتغيير هيكل تقاريرها بشكل دوري. ومع ذلك ، فقد تغير الهيكل عالميًا مرة واحدة ، هذا العام. قبل ذلك ، كانت جميع المعلومات حول الرحلة في شكل نص صلب ، والآن يتم تشكيلها في شكل جدول. لذلك ، كان علي أن أكتب وظيفتين منفصلتين لاستخراج المعلومات: إذا كانت الرسالة تحتوي على معلومات في شكل نص صلب ، فإننا ببساطة نجد المعلومات التي نحتاجها باستخدام التعبيرات العادية باستخدام الأقنعة ؛ إذا كان في شكل جدول ، فقم بتحليل كود 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
, ,
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