الأخبار التكنولوجية والاستعراضات والنصائح!

مقدمة إلى لغة بايثون لمحترفي تحسين محركات البحث (SEO) باستخدام جداول البيانات

ستساعدك المقالة التالية: مقدمة إلى لغة بايثون لمحترفي تحسين محركات البحث (SEO) باستخدام جداول البيانات

لقد تجاوز عام 2019 توقعاتي بكثير فيما يتعلق باعتماد لغة Python داخل مجتمع تحسين محركات البحث (SEO).

مع بدء عام جديد وأسمع المزيد من محترفي تحسين محركات البحث (SEO) يرغبون في الانضمام إلى المرح، ولكنني أشعر بالإحباط بسبب منحنى التعلم الأولي، قررت أن أكتب هذه المقالة التمهيدية بهدف إشراك المزيد من الأشخاص والمساهمة.

تتضمن معظم أعمال تحسين محركات البحث (SEO) العمل مع جداول البيانات التي يتعين عليك إعادتها يدويًا عند العمل مع علامات تجارية متعددة أو تكرار نفس التحليل بمرور الوقت.

عند تنفيذ نفس سير العمل في بايثون، يمكنك إعادة إنتاج العمل بشكل تافه أو حتى أتمتة سير العمل بالكامل.

سوف نتعلم أساسيات بايثون أثناء دراسة الكود جون مولر تمت مشاركتها مؤخرًا على Twitter الذي يملأ جداول بيانات Google. سنقوم بتعديل الكود الخاص به لإضافة تصور بسيط.

باستخدام واجهة برمجة تطبيقات Wikipedia، قمت بسحب المزيد من الحقول للفضوليين :). جدول: https://t.co/OSBENEubgt – كود كولاب: https://t.co/sTAb1vk8N4

— 🍌 جون 🍌 (@JohnMu) 3 يناير 2020

إعداد بيئة بايثون

كما هو الحال مع العمل مع Excel أو Google Sheets، لديك خياران أساسيان عند العمل مع Python.

يمكنك تثبيت Python وتشغيله على جهاز الكمبيوتر المحلي الخاص بك، أو يمكنك تشغيله في السحابة باستخدام دفاتر ملاحظات Google Colab أو Jupyter.

دعونا نراجع كل واحد.

العمل مع بايثون على جهاز الكمبيوتر المحلي الخاص بك

عادةً ما أختار العمل على جهاز Mac الخاص بي عندما يكون هناك برنامج لا يعمل في السحابة، على سبيل المثال، عندما أحتاج إلى تشغيل متصفح الويب تلقائيًا.

تحتاج إلى تنزيل ثلاث حزم برامج:

  • اناكوندا.
  • كود الاستوديو المرئي.
  • روابط بايثون للكود.

انتقل إلى https://www.anaconda.com/distribution/ لتنزيل وتثبيت Python 3.7 لنظام التشغيل الخاص بك. تتضمن Anaconda لغة Python ومعظم المكتبات التي تحتاجها لتحليل البيانات.

سيستغرق هذا بعض الوقت حتى يكتمل.

بمجرد الانتهاء من ذلك، ابحث عن Anaconda Navigator وقم بتشغيله.

انقر لتشغيل JupyterLab ويجب أن يفتح علامة تبويب جديدة في متصفحك مع جلسة JupyterLab.

انقر على الأيقونة الكبيرة لبدء تشغيل دفتر ملاحظات Python 3 وأنت تقرأ لبدء كتابة مقتطفات التعليمات البرمجية أو نسخها/لصقها.

يمكنك اعتبار هذا الكمبيوتر الدفتري مشابهًا لورقة Excel جديدة.

الخطوة التالية اختيارية.

اذهب إلى https://code.visualstudio.com/download وقم بتنزيل وتثبيت Visual Studio Code لجهاز الكمبيوتر الخاص بك.

أنا شخصيًا أستخدم Visual Studio Code عندما أحتاج إلى كتابة تعليمات برمجية بلغة Python وJavaScript أو عند كتابة تعليمات برمجية JavaScript. يمكنك أيضًا استخدامه إذا كنت تريد تحويل رمز دفتر الملاحظات الخاص بك إلى برنامج نصي لسطر الأوامر.

من الأسهل إنشاء نموذج أولي في دفاتر ملاحظات Jupyter، وعندما تبدأ كل شيء في العمل، يمكنك استخدام Visual Studio Code لتجميع كل شيء معًا في برنامج نصي أو تطبيق يمكن للآخرين استخدامه من سطر الأوامر.

تأكد من تثبيت ملحق Python لـ VSC. يمكن ان تجدها هنا.

يحتوي Visual Studio Code على دعم مدمج لأجهزة الكمبيوتر المحمولة Jupyter.

يمكنك إنشاء واحد عن طريق كتابة مجموعة الكلمات الرئيسية Command+Shift+P وتحديد الخيار “Python Jupyter Notebook”.

العمل مع بايثون في السحابة

أقوم بمعظم أعمالي في لغة Python على دفاتر ملاحظات Google Colab، لذا فإن هذا هو خياري المفضل.

اذهب إلى https://colab.research.google.com/ ويمكنك تخطي خطوات التنزيل والتثبيت.

انقر فوق الخيار لبدء دفتر ملاحظات Python 3 جديد وسيكون لديك ما يعادل ورقة Google جديدة.

تعلم أساسيات بايثون وباندا

شارك مولر أ دفتر كولاب الذي يسحب البيانات من ويكيبيديا ويملأ ورقة Google بهذه البيانات.

يحتاج المبرمجون المحترفون إلى تعلم تفاصيل لغة البرمجة، وقد يستغرق ذلك الكثير من الوقت والجهد.

بالنسبة لممارسي تحسين محركات البحث، أعتقد أن النهج الأبسط الذي يتضمن دراسة وتكييف التعليمات البرمجية الموجودة، يمكن أن يعمل بشكل أفضل. يرجى مشاركة تعليقاتك إذا حاولت ذلك ومعرفة ما إذا كنت على حق.

سنقوم بمراجعة معظم الأساسيات نفسها التي تتعلمها في دروس برمجة بايثون النموذجية، ولكن مع أخذ السياق العملي في الاعتبار.

لنبدأ بحفظ دفتر ملاحظات مولر على Google Drive.

بعد أن تضغط على الرابط. يختار .

هنا هو مثال على ورقة جوجل مع إخراج دفتر الملاحظات.

سير العمل الشامل

يريد مولر الحصول على أفكار للموضوعات تحقق أداءً أفضل على الأجهزة المحمولة مقارنة بأجهزة الكمبيوتر المكتبية.

ما نوع المحتوى الأكثر فائدة على الهاتف المحمول مقارنةً بسطح المكتب؟ ويكيبيديا للإنقاذ! على ما يبدو، قواعد المحتوى المشاهير / الترفيه والطبي المحمول.https://t.co/lvEdYmNPB2 … أيضا، كلب صغير طويل الشعر؟

— 🍌 جون 🍌 (@JohnMu) 30 ديسمبر 2019

لقد تعلم أن محتوى المشاهير والترفيه والمحتوى الطبي هو الأفضل على الهاتف المحمول.

دعنا نقرأ الكود والتعليقات للحصول على نظرة عامة رفيعة المستوى حول كيفية اكتشافه لهذا الأمر.

لدينا عدة قطع للغز.

  1. ان ورقة جوجل فارغة مع 6 أعمدة مملوءة مسبقًا و7 أعمدة تحتاج إلى ملؤها
  2. تحتوي ورقة Google الفارغة على جدول محوري في علامة تبويب منفصلة توضح أن مشاهدات الجوال تمثل 70.59% من جميع المشاهدات في ويكيبيديا
  3. يقوم رمز دفتر الملاحظات بملء الأعمدة السبعة المفقودة في الغالب في أزواج عن طريق استدعاء وظيفة مساعدة تسمى update_spreadsheet_rows.
  4. تتلقى الوظيفة المساعدة أسماء الأعمدة المراد تحديثها ووظيفة للاتصال بها والتي يمكنها إرجاع قيم الأعمدة.
  5. بعد ملء كافة الأعمدة، نحصل على ورقة جوجل النهائية يتضمن جدولاً محوريًا محدثًا مع تفاصيل الموضوع.

كتل بناء بايثون

دعونا نتعلم بعض العناصر الأساسية الشائعة في لغة Python بينما نراجع كيفية قيام كود Mueller باسترداد القيم لملء حقلين: PageId وDescription.

# احصل على معرف صفحة ويكيبيديا – اللازمة لمجموعة من العناصر. يستخدم عمود “المقال” def get_PageId(title): # احصل على وصف الصفحة من ويكيبيديا def get_description(pageId):

لدينا وظيفتان في بايثون لاسترداد الحقول. وظائف بايثون نفس الشيء الوظائف في جداول بيانات Google لكنك تحدد سلوكهم بأي طريقة تريدها. يأخذون المدخلات ويعالجونها ويعيدون المخرجات.

هنا هو معرف الصفحة نحصل عليها عندما نتصل

‘44254295’

هنا هو وصف نحصل عليها عندما نتصل

فيلم الأبطال الخارقين 2019 من إنتاج Marvel الاستوديوهات

أي شيء بعد الرمز # يعتبر أ تعليق بايثون ويتم تجاهله. يمكنك استخدام التعليقات لتوثيق الغرض من الكود.

دعنا ننتقل إلى الوظيفة سطرًا تلو الآخر لمعرفة كيفية حصولها على معرف عنوان المقالة التي نمررها.

# اتصل بواجهة برمجة تطبيقات Wikipedia للحصول على معرف الصفحة الخاص بالمقالة بالعنوان المحدد. q = {“action”: “query”، “format”: “json”، “prop”: “info”، “titles”: title}

هو قاموس بايثون. أنها تحمل أزواج القيمة الرئيسية. إذا بحثت عن قيمة “الإجراء”، فستحصل على “استعلام” وما إلى ذلك. على سبيل المثال، يمكنك إجراء مثل هذا البحث باستخدام .

هو سلسلة بايثون. يمثل معلومات نصية.

: العنوان يعين مفتاح “العناوين” لـ متغير بايثون العنوان الذي مررناه كمدخل للوظيفة. جميع المفاتيح والقيم مشفرة وصريحة، باستثناء المفتاح الأخير. هذا هو شكل القاموس بعد تنفيذ هذه الوظيفة.

q = {“action”: “query”، “format”: “json”، “prop”: “info”، “titles”: “Avengers: Endgame”}

في السطر التالي لدينا.

URL = “https://en.wikipedia.org/w/api.php؟” + urllib.parse.urlencode(ف)

هنا لدينا أ وحدة بايثون وظيفة urllib.parse.urlencode. تشبه وظائف الوحدة النمطية وظائف ورقة Google التي توفر وظائف قياسية.

قبل أن نستدعي وظائف الوحدة أو المكتبة، نحتاج إلى استيراد الوحدة التي تحتوي عليها.

هذا الخط الموجود أعلى دفتر الملاحظات يفعل ذلك.

استيراد urllib.parse

دعونا نوضح المكالمة ونرى النتيجة التي نحصل عليها.

urllib.parse.urlencode({“action”: “query”، “format”: “json”، “prop”: “info”، “titles”: “Avengers: Endgame”})

يمكنك العثور على وثائق مفصلة حول وظيفة وحدة urlencode هنا. وتتمثل مهمتها في تحويل قاموس معلمات URL إلى سلسلة استعلام. سلسلة الاستعلام هي جزء من عنوان URL بعد علامة الاستفهام.

وهذا هو الناتج الذي نحصل عليه بعد تشغيله.

“action=query&format=json&prop=info&titles=Avengers%3A+Endgame”

هذا هو ما يبدو عليه سطر تعريف عنوان URL الخاص بنا بعد إضافة نتيجة urlencode.

URL = “https://en.wikipedia.org/w/api.php؟” + “action=query&format=json&prop=info&titles=Avengers%3A+Endgame”

تعمل علامة + هنا على ربط السلاسل لتكوين سلسلة واحدة.

url = “https://en.wikipedia.org/w/api.php?action=query&format=json&prop=info&titles=Avengers%3A+Endgame”

هذه السلسلة الناتجة هي طلب API الذي يرسله دفتر الملاحظات إلى ويكيبيديا.

في السطر التالي من التعليمات البرمجية، نفتح عنوان URL الذي تم إنشاؤه ديناميكيًا.

الاستجابة = طلبات.get(url)

هو وظيفة وحدة بايثون لجهة خارجية. تحتاج إلى تثبيت مكتبات الطرف الثالث باستخدام أداة بايثون نقطة.

!pip install –upgrade -q طلبات

يمكنك تشغيل البرنامج النصي وأدوات سطر الأوامر من دفتر ملاحظات عن طريق إضافتها مسبقًا

الكود التالي ليس كود بايثون. إنه كود Shell الخاص بـ Unix. هذا شرط يوفر قائمة شاملة بأوامر shell الأكثر شيوعًا.

بعد تثبيت وحدة الطرف الثالث، يتعين عليك استيرادها كما تفعل مع المكتبات القياسية.

طلبات الاستيراد

إليك ما تبدو عليه المكالمة المترجمة.

Response = request.get(“https://en.wikipedia.org/w/api.php?action=query&format=json&prop=info&titles=Avengers%3A+Endgame”)

يمكنك فتح هذا الطلب في المتصفح ورؤية استجابة API من ويكيبيديا. يتيح لنا استدعاء الوظيفة القيام بذلك دون فتح متصفح الويب يدويًا.

يتم تخزين نتائج المكالمة في متغير بايثون.

وهذا ما تبدو عليه النتيجة.

{“إكمال الدفعة”: “”،
“الاستعلام”: {“الصفحات”: {“44254295”: {“نموذج المحتوى”: “نص الويكي”،
“لاستريفيد”: 933501003،
“الطول”: 177114،
“نس”: 0،
“رقم الصفحة”: 44254295,
“لغة الصفحة”: “en”،
“pagelanguagedir”: “لتر”،
“pagelanguagehtmlcode”: “en”،
“العنوان”: “المنتقمون: نهاية اللعبة”،
“تم التطرق”: “2020-01-03T17:13:02Z”}}}}

يمكنك التفكير في بنية البيانات المعقدة هذه كقاموس حيث تتضمن بعض القيم قواميس أخرى وما إلى ذلك.

السطر التالي من التعليمات البرمجية يقطع بنية البيانات هذه ويقطعها لاستخراج ملف .

النتيجة = قائمة (response.json ()[“query”][“pages”].مفاتيح())[0]

دعونا خطوة من خلال ذلك لنرى كيف يحصل عليه.

استجابة.json()[“query”]

عندما نبحث عن قيمة المفتاح، نحصل على قاموس أصغر.

{“الصفحات”: {“44254295”: {“نموذج المحتوى”: “نص الويكي”،
“لاستريفيد”: 933501003،
“الطول”: 177114،
“نس”: 0،
“رقم الصفحة”: 44254295,
“لغة الصفحة”: “en”،
“pagelanguagedir”: “لتر”،
“pagelanguagehtmlcode”: “en”،
“العنوان”: “المنتقمون: نهاية اللعبة”،
“تم التطرق”: “2020-01-03T17:13:02Z”}}}

ثم نبحث عن قيمة في هذا القاموس الأصغر.

استجابة.json()[“query”][“pages”]

نحصل على واحدة أصغر. نحن نتعمق في بنية البيانات الضخمة.

{“44254295”: {“نموذج المحتوى”: “نص الويكي”،
“لاستريفيد”: 933501003،
“الطول”: 177114،
“نس”: 0،
“رقم الصفحة”: 44254295,
“لغة الصفحة”: “en”،
“pagelanguagedir”: “لتر”،
“pagelanguagehtmlcode”: “en”،
“العنوان”: “المنتقمون: نهاية اللعبة”،
“تم التطرق”: “2020-01-03T17:13:02Z”}}

يتوفر في مكانين في هذه الشريحة من بنية البيانات. كمفتاح وحيد، أو كقيمة في القاموس المتداخل.

لقد اتخذ جون الخيار الأكثر منطقية، وهو استخدام المفتاح لتجنب المزيد من الاستكشاف.

استجابة.json()[“query”][“pages”]مفاتيح ()

الرد على هذه المكالمة هو أ عرض قاموس بايثون من المفاتيح. يمكنك معرفة المزيد عنها عرض القاموس في هذه المقالة.

dict_keys([“44254295”])

لدينا ما نبحث عنه، ولكن ليس بالشكل الصحيح.

في الخطوة التالية، نقوم بتحويل عرض القاموس إلى ملف قائمة بايثون.

قائمة (response.json ()[“query”][“pages”].مفاتيح())

وهذا ما يبدو عليه التحويل.

[“44254295”]

تشبه قوائم Python الصفوف في ورقة Google. وهي تحتوي بشكل عام على قيم متعددة مفصولة بفواصل، ولكن في هذه الحالة، هناك قيمة واحدة فقط.

وأخيرًا، نستخرج العنصر الوحيد الذي يهمنا من القائمة. الاول.

قائمة (response.json ()[“query”][“pages”].مفاتيح())[0]

يبدأ العنصر الأول في قوائم بايثون عند الفهرس 0.

هنا هو النتيجة النهائية.

“44254295”

نظرًا لأن هذا معرف، فمن الأفضل الاحتفاظ به كسلسلة، ولكن إذا كنا بحاجة إلى رقم لإجراء عمليات حسابية، فسنقوم بإجراء تحويل آخر.

كثافة العمليات (قائمة (response.json ()[“query”][“pages”].مفاتيح())[0])

في هذه الحالة نحصل على أ عدد صحيح بايثون.

44254295

تتمثل الاختلافات الرئيسية بين السلاسل والأعداد الصحيحة في أنواع العمليات التي يمكنك تنفيذها بها. كما رأيت من قبل، يمكننا استخدام عامل التشغيل + لربط سلسلتين، ولكن إذا استخدمنا نفس العامل في رقمين، فسيتم جمعهما معًا.

“44254295” + “3” = “442542953” 44254295 + 3 = 44254298

كملاحظة جانبية، أود أن أذكر ، أداة سطر أوامر رائعة تسمح لك بتقسيم وتقطيع استجابات JSON مباشرةً من المكالمات (أداة سطر أوامر رائعة أخرى). يتيح لك القيام بما يعادل ما نقوم به مع الوحدة هنا، ولكن مع قيود.

لقد تعلمنا حتى الآن كيفية إنشاء وظائف وأنواع بيانات تسمح لنا باستخراج البيانات وتصفية البيانات من مواقع الطرف الثالث (ويكيبيديا في حالتنا).

دعنا نطلق على الوظيفة التالية في دفتر ملاحظات جون للتعرف على لبنة بناء مهمة أخرى: هياكل التحكم في التدفق.

get_description(“442542953”)

هذا ما يبدو عليه عنوان URL لواجهة برمجة التطبيقات. يمكنك تجربتها في المتصفح.

“https://en.wikipedia.org/w/api.php?action=query&format=json&prop=pageterms&pageids=44254295”

هنا كيف يبدو الرد.

{“نس”: 0،
“رقم الصفحة”: 44254295,
“المصطلحات”: {“الاسم المستعار”: [“Avengers Endgame”, “Avengers End Game”, “Avengers 4”],
“وصف”: [“2019 superhero film produced by Marvel Studios”],
“ملصق”: [“Avengers: Endgame”]},
“العنوان”: “المنتقمون: نهاية اللعبة”}

هذا هو الكود الذي سينتقل لفهم تدفقات التحكم في بايثون.

# بعض الصفحات لا تحتوي على أوصاف، لذلك لا يمكننا الحصول على القيمة بشكل أعمى إذا كانت “المصطلحات” في rs و”الوصف” في rs[“terms”]: النتيجة = روبية[“terms”][“description”][0]

آخر: النتيجة = “” إرجاع النتيجة

يتحقق هذا الجزء مما إذا كانت بنية الاستجابة (أعلاه) تتضمن مفتاحًا يسمى “المصطلحات”. يستخدم بايثون إذا… مشغل تدفق التحكم الآخر. تعد عوامل التحكم في التدفق بمثابة اللبنات الأساسية للبرامج في معظم اللغات، بما في ذلك لغة بايثون.

إذا كانت “الشروط” في روبية

إذا نجح هذا الفحص، فإننا نبحث عن قيمة هذا المفتاح باستخدام

نتوقع أن تكون النتيجة قاموسًا آخر ونتحقق منه لمعرفة ما إذا كان هناك مفتاح بالقيمة.

“الوصف” في روبية[“terms”]

إذا نجح كلا الفحصين، فإننا نستخرج قيمة الوصف ونخزنها.

النتيجة = روبية[“terms”][“description”][0]

نتوقع أن تكون القيمة النهائية قائمة بايثون، ونريد العنصر الأول فقط كما فعلنا من قبل.

ال بايثون عامل منطقي يجمع كلا التحققين في واحد حيث يجب أن يكون كلاهما صحيحًا حتى يكون صحيحًا.

إذا كان الاختيار خاطئا، فإن الوصف عبارة عن سلسلة فارغة.

النتيجة = “”

نشر جداول بيانات Google من بايثون

من خلال الفهم العميق لبنات البناء الأساسية لـ Python، يمكننا الآن التركيز على الجزء الأكثر إثارة في دفتر ملاحظات مولر: ملء جداول بيانات Google تلقائيًا بالقيم التي نستخرجها من ويكيبيديا.

# وظيفة مساعدة لتحديث جميع الصفوف في جدول البيانات باستخدام وظيفة def update_spreadsheet_rows(fieldName,parameterName, functionToCall, forceUpdate=False): # انتقل إلى جدول البيانات، وقم بتحديث العمود “fieldName” بالبيانات المحسوبة # بواسطة “functionToCall(parameterName)”. أظهر شريط التقدم أثناء القيام بذلك. # فقط قم بحساب / تحديث الصفوف التي لا تحتوي على قيم هناك، إلا إذا كان forceUpdate=True.

دعونا ننتقل إلى بعض الأجزاء المثيرة للاهتمام في هذه الوظيفة.

تتم تغطية وظيفة تحديث جداول بيانات Google بواسطة وحدة خارجية.

نحتاج إلى تثبيته واستيراده قبل أن نتمكن من استخدامه.

!pip install –upgrade -q gspread import gspread

اختار مولر تحويل الأوراق إلى الباندا إطار البيانات وبينما، كما ذكر في التعليقات، لم يكن ذلك ضروريًا، ولكن يمكننا اغتنام الفرصة لتعلم القليل من الباندا أيضًا.

update_spreadsheet_rows(“معرف الصفحة”، “مقالة”، get_PageId)

في نهاية كل دالة مساعدة تملأ عمودًا، لدينا استدعاء مثل الذي أعلاه.

نقوم بتمرير الأعمدة ذات الصلة والوظيفة التي ستحصل على القيم المقابلة.

عندما تقوم بتمرير اسم دالة بدون معلمات في بايثون، فإنك لا تمرر بيانات بل رمزًا للوظيفة المراد تنفيذها. هذا ليس شيئًا، على حد علمي، يمكنك القيام به في جدول بيانات.

columnNr = df.columns.get_loc(fieldName) + 1 # رقم عمود حقل الإخراج

أول شيء نريد معرفته هو العمود الذي نحتاج إلى تحديثه. عندما نقوم بتشغيل الكود أعلاه نحصل على 7، وهو موضع العمود في الورقة (بدءًا من 1).

للفهرس، الصف في df.iterrows():

في هذا السطر من التعليمات البرمجية، لدينا عامل تدفق تحكم آخر، وهو بايثون للحلقات. تسمح لك حلقات For بالتكرار على العناصر التي تمثل المجموعات، على سبيل المثال، القوائم والقواميس.

في حالتنا أعلاه، نقوم بالتكرار على قاموس حيث سيحتفظ المتغير بالمفتاح، وسيحتفظ المتغير بالقيمة.

لنكون أكثر دقة، نحن نكرر على عرض قاموس بايثون، يشبه عرض القاموس نسخة أسرع للقراءة فقط من القاموس، وهو مثالي للتكرار.

<كائن المولد DataFrame.iterrows في 0x7faddb99f728>

عند الطباعة، فإنك لا تحصل فعليًا على القيم، ولكن أ مكرر بايثون هدف.

التكرارات هي وظائف يمكنها الوصول إلى البيانات عند الطلب، وتتطلب ذاكرة أقل وتعمل بشكل أسرع من الوصول إلى المجموعات يدويًا.

الفهرس: صفان: مقالة César Alonso de las Heras URL https://en.wikipedia.org/wiki/César_Alonso_de_… المشاهدات 1,944,569 PartMobile 79.06% ViewsMobile 1,537,376 ViewsDesktop 407,193 معرف الصفحة 18247033 الوصف WikiInLinks WikiOutLinks Ext الروابط الخارجية WikidataId اسم WikidataInstance: 2، dtype : كائن sdsdsds

هذا مثال لتكرار حلقة for. لقد قمت بطباعة الفهرس وقيم الصف.

# إذا قمنا بذلك بالفعل، فلا تقم بإعادة الحساب ما لم يتم تعيين “forceUpdate”. إذا forceUpdate أم لا الصف[fieldName]: النتيجة = functionToCall(row[parameterName])

هو بايثون منطقية القيمة الافتراضية هي False. يمكن أن تكون القيم المنطقية صحيحة أو خاطئة فقط.

فارغة في البداية، وهذا صحيح وسيتم تنفيذ السطر التالي. يسمح عامل التشغيل بتنفيذ السطر التالي لعمليات التشغيل اللاحقة فقط عندما تكون العلامة صحيحة.

النتيجة = functionToCall(get_PageId)

هذا هو الرمز الذي يستدعي وظيفتنا المخصصة للحصول على معرفات الصفحة.

القيمة الناتجة لتكرار المثال هي

عند مراجعة الدالة بعناية، ستلاحظ أننا نستخدم ما لم يتم تعريفه في الدالة. الكود الذي يفعل ذلك موجود في بداية دفتر الملاحظات.

# تحويل إلى DataFrame وتقديمه. # (إطار DataFrame مبالغ فيه، ولكنني أردت اللعب به أكثر :)) استيراد الباندا كـ pd df = pd.DataFrame.from_records(worksheetRows)

يستخدم الكود وحدة الباندا التابعة لجهة خارجية لإنشاء إطار بيانات من صفوف ورقة Google. أوصي بقراءة مقالة الباندا هذه لمدة 10 دقائق للتعرف عليها. إنها مكتبة قوية جدًا لمعالجة البيانات.

أخيرًا، دعونا نرى كيفية تحديث ورقة Google.

صف[fieldName] = النتيجة # حفظ ورقة العمل محليًا.update_cell(index+1, columnNr, result) # ورقة التحديث أيضًا

يمكن ترجمة هذا الرمز إلى.

صف[“PageId”] = 39728003 # حفظ ورقة العمل محليًا.update_cell(3+1, 7, 39728003) # ورقة التحديث أيضًا

هذا هو الرمز الذي يقوم بتحديث ورقة Google. لم يتم تعريف المتغير أيضًا في الوظيفة، ولكن يمكنك العثور عليه في بداية دفتر الملاحظات.

# المصادقة (نسخ ولصق المفتاح كما هو مفصل)، وقراءة جدول البيانات # (هذا أمر مربك دائمًا، لكنه يعمل) من google.colab import auth auth.authenticate_user() import gspread from oauth2client.client import GoogleCredentials gc = gspread.authorize( GoogleCredentials.get_application_default()) # احصل على جميع البيانات من جدول البيانات ورقة العمل = gc.open(spreadsheetName).sheet1 WorksheetRows =worksheet.get_all_values()

لقد تركت هذا الكود للأخير لأنه آخر شيء يتم تنفيذه وهو أيضًا أكثر تعقيدًا من الكود السابق. ومع ذلك، فهذا هو أول شيء يجب عليك تنفيذه في دفتر الملاحظات.

أولاً، نقوم باستيراد وحدة الطرف الثالث وإكمال مصادقة Oauth في Chrome للوصول إلى جداول بيانات Google.

# احصل على جميع البيانات من جدول البياناتworksheet = gc.open(“Wikipedia-Views-2019”).sheet1 WorksheetRows =worksheet.get_all_values()

نتعامل مع ورقة Google باستخدام المتغير ونستخدم المتغير لإنشاء إطار بيانات الباندا.

تصور من بايثون

الآن نصل إلى واجبك المنزلي.

لقد كتبت رمزًا لإعادة إنتاج جدول جون المحوري جزئيًا ورسم مخطط شريطي بسيط.

مهمتك هي إضافة هذا الرمز إلى نسختك من دفتر الملاحظات وإضافة بيانات لفهم ما أفعله. هذه هي الطريقة التي قمت بتحليل كود جون.

هنا هو الرمز.

#Visualize from Python df.groupby(“WikidataInstance”).agg({“ViewsMobile”: np.sum, “ViewsDesktop”: np.sum}) # التجميع لا يعمل لأن الأرقام تتضمن فواصل # هذا يعطي خطأ خطأ القيمة: غير قادر على تحليل السلسلة “1,038,950,248” في الموضع 0 #pd.to_numeric(df[“ViewsMobile”]) # StackOverflow هو صديقك 🙂 #https://stackoverflow.com/questions/22137723/convert-number-strings-with-commas-in-pandas-dataframe-to-float import locale from locale import atoi locale.setlocale( locale.LC_NUMERIC, ”) #df[[“ViewsMobile”, “ViewsDesktop”]].applymap(atoi) df[“ViewsMobile”] = مدافع[“ViewsMobile”].apply(atoi) df[“ViewsDesktop”] = مدافع[“ViewsDesktop”].apply(atoi) # حاولنا مرة أخرى وقد نجح الأمر Totals_df = df.groupby(“WikidataInstance”).agg({“ViewsMobile”: np.sum, “ViewsDesktop”: np.sum}) Totals_df # هنا نرسم Totals_df. رأس (20).مؤامرة (نوع = “شريط”)

إذا وصلت إلى هذا الحد وتريد معرفة المزيد، فإنني أنصحك باتباع الروابط التي أدرجتها في المقالة وممارسة مقتطفات التعليمات البرمجية في هذا الدليل.

في نهاية معظم أعمدتي، أشارك مشاريع بايثون المثيرة للاهتمام من مجتمع تحسين محركات البحث (SEO). يرجى النظر في التحقق من تلك التي تهمك والنظر في دراستها كما فعلنا هنا.

ولكن الأفضل من ذلك هو معرفة كيف يمكنك إضافة شيء بسيط ولكنه قيم يمكنك مشاركته مرة أخرى!

المزيد من الموارد: