كل المشاريع/DATAINSIGHT DASHBOARD

نظرة عامة

جاء عميلٌ بمشكلةٍ متكرّرةٍ غيرِ لامعة: فكلُّ مجموعة بياناتٍ جديدة تصل لا بدّ أن تُفتح ويُدقَّق فيها النظرُ وتُفحَص يدويًّا قبل أن يثق بها أحد. كم فيها من صفّ؟ وكم عمودًا فيها نصفُه فارغ؟ وهل فيها صفوفٌ مكرَّرة؟ وأيُّ حقولها فئويّ وأيُّها عدديّ، وكيف تبدو توزيعاتُها في حقيقة الأمر؟

وكان التكليفُ أداةً تُجيب عن ذلك كلّه لـأيّ مجموعة بيانات، بلا تهيئة — تَرفع الملفَّ فتقرأ الجواب. وما يجعل ذلك أصعبَ ممّا يبدو أنّ الأداة لا تستطيع أن تعرف عن البيانات شيئًا سلفًا: بل عليها أن تُقرّر، عن كلّ عمودٍ وفي أثناء التشغيل، أيَّ شيءٍ تنظر إليه وكيف ينبغي أن يُرسَم.

والحصيلةُ لوحةٌ مبنيّةٌ على Streamlit تستقبل ملفّات CSV وExcel، وتُبلّغ عن شكل البيانات وسلامتها في أربعة أرقامٍ في الصدارة، وترسم مجموعةً من التوزيعات استُدِلَّ على نوع كلّ مخطّطٍ فيها بدل أن يختاره إنسان. وقد أُنجزت لعميلٍ على Fiverr في سويسرا.

التحدي

لوحةٌ تُبنى لمجموعة بياناتٍ واحدةٍ معلومة أمرٌ يسير. أمّا لوحةٌ تُبنى لـأيّ مجموعة بيانات فتحمل ثلاث مشكلاتٍ لا تعرفها الأولى قطّ.

لا يمكنك تهيئة المخطّطات سلفًا. فمع ملفٍّ مجهولٍ لا شيء يمكن تثبيتُه في الشيفرة: لا أيُّ عمودٍ يحمل فئةً، ولا أيُّه يحمل قياسًا، ولا كم فئةً يحتاج المدرَّج التكراريّ. بل لا بدّ أن يُستمدَّ كلُّ قرارٍ من تلك القرارات من البيانات نفسها، لحظةَ الرسم.

مجموعاتُ البيانات الحقيقية تكسر المخطّطات الساذجة. فعمودٌ فيه ألفا قيمةٍ متمايزة — مُعرِّفٌ، أو حقلُ نصٍّ حرّ، أو ختمٌ زمنيّ — سيُرسَم عن طيب خاطرٍ مخطّطًا شريطيًّا بألفَي شريط، ويُسقط معه العرضَ البصريّ كلَّه. والأداةُ العامّة التي لم تُفكّر في هذا تُنتج شيئًا لا يصلح للاستعمال على البيانات الواقعية المشوَّشة بعينها التي بُنِيت لأجلها.

ومُرشِّحٌ يُطبَّق نصفَ تطبيقٍ أسوأ من ألّا يكون. فإن ضيّق المستخدمُ العرضَ إلى ثلاثة أعمدة، وجب أن تتّفق الأقسامُ كلُّها: الجدولُ، وتفصيلُ القيم الفارغة، وتفصيلُ الصفوف المكرَّرة، جميعُها تتحدّث عن تلك الأعمدة الثلاثة نفسها. ولوحةٌ يظلّ فيها قسمٌ واحدٌ يعرض مجموعةَ البيانات كاملةً إنّما تكذب في صمت.

تصميم النظام

كيف يعمل

01/04
01

الملفُّ يصير فحصَ سلامة

الثواني العشر الأولى — ما يعرفه المستخدم قبل أن ينظر إلى مخطّطٍ واحد.

  1. 1يُرفَع جدولُ بياناتٍ واحد أو أكثر، ويُبدَّل بينها من الشريط الجانبيّ
  2. 2ويُقرأ الملفُّ النشِط في إطار بيانات — CSV أو XLSX أو XLS، يُقرَّر ذلك من الملفّ نفسه
  3. 3وتُحسب الصفوفُ والأعمدةُ ومجموعُ القيم الفارغة والصفوفُ المكرَّرة، وتُعرَض أربعةَ مؤشّراتٍ في الصدارة
  4. 4فتُجيب هذه الأربعةُ عمّا إذا كان الملفُّ جديرًا بالثقة قبل أن يُرسَم أيُّ مخطّط
02

المُرشِّحُ يُضيّق كلَّ شيءٍ دفعةً واحدة

لماذا لا ينتهي قسمٌ إلى وصف مجموعة بياناتٍ غير التي يصفها جارُه.

  1. 1تُختار الأعمدةُ من المنتقي المتعدّد في الشريط الجانبيّ
  2. 2ويُنتج الاختيارُ إطارَ بياناتٍ مُصفّى واحدًا
  3. 3ويقرأ الجدولُ ومخطّطا الجودة ذلك الإطارَ نفسه
  4. 4فيُعيد كلُّ قسمٍ الحسابَ مع سواه، ويكون العرضُ متّسقًا مع نفسه بحكم البناء
03

البياناتُ تختار مخطّطاتِها بنفسها

قلبُ الأداة — استدلالٌ بدل تهيئة.

  1. 1يُفحَص كلُّ عمودٍ بدوره، ويُقرأ عددُ قيمه المتمايزة ونوعُه
  2. 2فالأعمدةُ النصّيّة تصير مخطّطًا شريطيًّا لأعداد القيم، والأعمدةُ العدديّة تصير مدرَّجًا تكراريًّا تُشتقّ فئاتُه من مدى العمود نفسه
  3. 3والأعمدةُ التي فيها أكثر من عشرين قيمةً متمايزة تُضاف لكنّها تبدأ مخفيّةً خلف وسيلة الإيضاح
  4. 4وأعمدةُ الفهرسة غير المسمّاة في جداول البيانات تُتخطّى بالكامل، فيعرض المخطّطُ بياناتٍ لا دفاترَ حسابات
04

التفصيلُ يجلس تحت

كيف تبقى القراءةُ السريعة سريعةً دون أن تُخفي التفاصيل.

  1. 1تُسرَد أنواعُ بيانات الأعمدة حتى يمكن التحقّق من المعالجة المُستدَلّ عليها
  2. 2ويُولَّد رقمُ مُدخَلٍ حتى يمكن الإشارةُ إلى الصفوف بلا لبس
  3. 3وتُعرَض الإحصاءاتُ الوصفيّة الكاملة للأعمدة العدديّة
  4. 4ويجلس ذلك كلُّه أسفل مؤشّرات الصدارة والمخطّطات، بهذا الترتيب

أبرز الميزات

  • يعمل على أيّ مجموعة بيانات — بلا تهيئة، وبلا بنيةٍ مُعرَّفة سلفًا، وبلا خطوة إعداد
  • رفعٌ متعدّد الملفّات يشمل CSV وXLSX وXLS، مع مُبدِّلٍ في الشريط الجانبيّ للتنقّل بين مجموعات البيانات في جلسةٍ واحدة
  • أربعةُ مؤشّرات سلامةٍ في الصدارة — عددُ الصفوف، وعددُ الأعمدة، ومجموعُ القيم الفارغة، وعددُ الصفوف المكرَّرة
  • مُرشِّحُ أعمدةٍ في الشريط الجانبيّ يحترمه كلُّ قسمٍ أسفلَ منه، فلا ينحرف شيءٌ عن شيء
  • مخطّطا نِسَبٍ حَلَقيّان للقيم الفارغة والصفوف المكرَّرة، فتصير جودةُ البيانات نظرةً لا عمليةَ حساب
  • اختيارٌ تلقائيّ للمخطّط لكلّ عمود — مخطّطاتٌ شريطيّة للفئات، ومدرَّجاتٌ تكراريّة للأعداد، وفئاتٌ محسوبةٌ من مدى كلّ عمودٍ نفسِه
  • الأعمدةُ كثيرةُ القيم المتمايزة تُبقى لكنّها تُخفى خلف وسيلة الإيضاح، فتظلّ مجموعةُ البيانات العريضةُ أو المشوَّشة قابلةً للقراءة
  • أعمدةُ الفهرسة التي تضيفها جداولُ البيانات تُتخطّى تلقائيًّا، وتحت القراءة البصريّة أنواعُ البيانات وترقيمُ المُدخلات والإحصاءاتُ الوصفيّة الكاملة

Outcomes

  • سلّمتُ أداةَ استكشافٍ لا تفترض شيئًا عن مجموعة البيانات: يمكن إسقاطُ أيّ ملفّ CSV أو Excel فيها وقراءتُه في ثوانٍ، بلا خطوة تهيئة
  • وجعلتُ اختيارَ المخطّط تلقائيًّا — فالنوعُ، وتقسيمُ الفئات، وظهورُ كلّ سلسلة، تُقرَّر من العمود نفسه لحظةَ الرسم
  • وأبقيتُ الأداةَ صالحةً للاستعمال على البيانات الواقعية المشوَّشة، بمعالجة الأعمدة كثيرةِ القيم المتمايزة وآثارِ فهرسة جداول البيانات معالجةً صريحة بدل ترك أيٍّ منهما يكسر العرضَ البصريّ
  • وجعلتُ مُرشِّح الأعمدة مرجعًا نافذًا في كلّ قسم، فلا يمكن للأرقام والمخطّطات أن تصف مجموعاتٍ جزئيّةً مختلفة أبدًا
  • وقدّمتُ أجوبةَ جودة البيانات على ما عداها — الصفوفُ والأعمدةُ والقيمُ الفارغة والصفوفُ المكرَّرة مؤشّراتٍ في الصدارة، ونِسَبُها مرسومةٌ لا مدفونة
  • وسلّمتُها أداةً قائمةً بذاتها يُشغّلها العميل محلّيًّا — لا بنيةَ تحتيّةٍ تُقام، ولا خطوةَ نشر، ولا شيءَ يُصان

أعمال أخرى