<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.3.4">Jekyll</generator><link href="https://www.enepal.net.np//feed.xml" rel="self" type="application/atom+xml" /><link href="https://www.enepal.net.np//" rel="alternate" type="text/html" /><updated>2025-10-03T09:31:56+00:00</updated><id>https://www.enepal.net.np//feed.xml</id><title type="html">ई-मिडिया ब्लग</title><subtitle>साइबर चौतारी 2.0</subtitle><author><name>Anish Bhattarai</name></author><entry><title type="html">च्याटजीपीटी बाहेक पनि छन् २५ वटा शक्तिशाली AI मोडेलहरू!</title><link href="https://www.enepal.net.np//2025/10/02/twenty-five-llm-sites.html" rel="alternate" type="text/html" title="च्याटजीपीटी बाहेक पनि छन् २५ वटा शक्तिशाली AI मोडेलहरू!" /><published>2025-10-02T14:53:12+00:00</published><updated>2025-10-02T14:53:12+00:00</updated><id>https://www.enepal.net.np//2025/10/02/twenty-five-llm-sites</id><content type="html" xml:base="https://www.enepal.net.np//2025/10/02/twenty-five-llm-sites.html"><![CDATA[<p>लार्ज ल्याङ्ग्वेज मोडेल (LLM) को दुनियाँमा तपाईंलाई कसैले “च्याटजीपीटी जस्तो AI” को बारेमा सोधे भने भन्नलाई हजारौं विकल्प देखिन्छन्। कुनै ओपन सोर्स छन, कुनै प्रोपराटरी; कुनै महँगो छन, कुनै निःशुल्क; कुनै कोडिङमा राम्रो, कुनै डाटा विश्लेषणमा उत्कृष्ट —सबै किसिमका मोडेलहरू छन्। त्यसैले मैले तल २५ वटा प्रमुख LLM को सूची तयार गरेको छु, जसमा प्रत्येकको लागि कस्तो काममा उपयोग गर्न सकिन्छ, वेब डेभलपर वा डेटा एनालिष्ट/स्टाटसियनले  कहिले प्रयोग गर्नुपर्छ, र अरूभन्दा किन फरक छ भन्ने कुरा बुझाउन खोजीएको छ।</p>

<p>सबैभन्दा पहिले यदि कसैले “कुन ठिक छ?” भनेर सोध्छ भने, उसलाई तुरुन्त सोध्नुपर्छ: “के को लागि?”
किनभने एउटै मोडेलले सबै काम गर्न सक्दैन—तपाईंको आवश्यकता, बजेट, र कामको प्रकृति अनुसार नै सही छनोट/निर्णय गर्नुपर्छ।
—</p>

<blockquote>
  <p>:bulb:  यदि तपाईंलाई <strong>उच्च गुणस्तर, विश्वसनीयता, र सहज API</strong> चाहिन्छ भने, <strong>GPT-4o</strong>, <strong>Claude 3.5 Sonnet</strong>, र <strong>Gemini 1.5 Pro</strong> जस्ता प्रोप्राइटरी मोडेलहरू उत्तम छन्। यी मोडेलहरूले वेब डेभलपरहरूलाई कोड लेख्न, बग खोज्न, र रियल-टाइम च्याटबट बनाउन मद्दत गर्छन्, जबकि डेटा साईन्लेटिस्टहरुले यीबाट R/Python स्क्रिप्ट, डाटा एनालाईसिस, र लामो कन्टेक्स्ट विश्लेषण गर्न सक्छन्। यी महँगा छन्, तर जब तपाईंलाई गुणस्तरिय काम गर्नु पर्ने हुन्छ तब यि भरपर्दो विकल्प हुन्।</p>
</blockquote>

<blockquote>
  <p>:bulb:  यदि तपाईंको <strong>बजेट सीमित छ</strong>, वा तपाईंले <strong>आफ्नै सर्भरमा AI चलाउन चाहनुहुन्छ</strong> (जस्तै गोपनीय डाटा सुरक्षित राख्न), भने <strong>Llama 3 (8B वा 70B)</strong>, <strong>Mixtral 8x7B</strong>, र <strong>Qwen-72B</strong> जस्ता <strong>खुला (open-weight) मोडेलहरू</strong> उत्तम छन्। यी निःशुल्क छन्, व्यावसायिक प्रयोग गर्न पाईन्छ, र कोडिङ, डाटा विश्लेषण, र मल्टी लिङ्वेल सपोर्टमा धेरै राम्रो काम गर्छन्। विशेष गरी Llama 3 70B ले GPT-3.5 जत्तिकै क्षमता दिन्छ, जबकि Mixtral जस्ता MoE (मिक्सचर अफ एक्सपर्ट्स) मोडेलहरूले कम GPU पावरमा उच्च पर्फमेन्स दिन्छन्—यसले लागत घटाउँछ।</p>
</blockquote>

<blockquote>
  <p>:bulb:  यदि तपाईं <strong>विशेष आवश्यकता</strong> अनुसार AI खोज्दै हुनुहुन्छ—जस्तै <strong>डाटा वेयरहाउससँग जोड्नु (Snowflake Arctic)</strong>, <strong>सोशल मिडिया डाटा विश्लेषण (Grok-1.5)</strong>, <strong>GPU अप्टिमाइजेसन (Orion-14B)</strong>, वा <strong>RAG-आधारित नलेज बेस (Command R+)</strong>—भने ती क्षेत्र-विशिष्ट मोडेलहरूले तपाईंलाई ठूलो फाइदा दिन्छन्। त्यस्तै, <strong>Phi-3</strong> जस्ता साना मोडेलहरूले फोन वा ल्यापटपमा ऑफलाइन AI सञ्चालन गर्न अनुमति दिन्छन्। त्यसैले, “सबैभन्दा ठूलो” मोडेल होइन, “तपाईंको कामका लागि उपयुक्त” मोडेल नै सही छ।</p>
</blockquote>

<hr />

<h3 id="1-gpt-4-openai"><strong>1. GPT-4 (OpenAI)</strong></h3>
<p>तपाईं यदि वेब डेभलपर हुनुहुन्छ र एउटा AI-सञ्चालित ड्यासबोर्ड बनाउन चाहनुहुन्छ जसले यूजरको डाटा विश्लेषण गरेर ग्राफ र सुझाव दिन सकोस् भने, GPT-4 ठीक पड्छ। यसले Python, JavaScript, SQL कोड सजिलै लेख्छ, API कलहरू सम्हाल्छ, र त्रुटि समाधान गर्न मद्दत गर्छ। तथ्याङ्क विश्लेषकहरूले यसलाई प्रयोग गरेर R वा Pandas मा जटिल डाटा क्लिनिङ स्क्रिप्ट बनाउन सक्छन्। अरू मोडेलभन्दा यसको फरक के हो भने, यो अहिलेसम्मकै सबैभन्दा विश्वसनीय, सुरक्षित, र सन्तुलित मोडेल हो—यसले गलत जानकारी दिने सम्भावना धेरै कम छ। यद्यपि यो महँगो छ, तर जब तपाईंलाई निश्चितता चाहिन्छ, GPT-4 नै भरपर्दो विकल्प हो।<br />
🔗 <a href="https://openai.com/index/gpt-4/">https://openai.com/index/gpt-4/</a></p>

<hr />

<h3 id="2-gpt-4o-openai"><strong>2. GPT-4o (OpenAI)</strong></h3>
<p>मानौं तपाईंले एउटा वेब एप बनाउन चाहनुहुन्छ जसमा यूजरले भोइसमा “मेरो साइटको लोडिङ स्पीड किन ढिलो छ?” भनेर सोध्न सकोस् र AI ले तुरुन्त जवाफ दिओस्—त्यहाँ GPT-4o उत्तम छ। यो मोडेल टेक्स्ट, आवाज, र छवि सबै एकैचोटि बुझ्छ र धेरै छिटो काम गर्छ। तथ्याङ्क विश्लेषकले यसलाई प्रयोग गरेर भोइस नोटबाट डाटा एन्ट्री गर्न सक्छन् वा ग्राफको तस्वीर हेरेर विश्लेषण गर्न सक्छन्। अरूभन्दा फरक के हो भने, GPT-4o ले GPT-4 जत्तिकै बुद्धिमत्ता राख्छ तर लागत आधा र गति दोबर छ—यसैले रियल-टाइम एप्लिकेसनका लागि यो नयाँ स्ट्यान्डर्ड बन्दै गएको छ।<br />
🔗 <a href="https://openai.com/index/hello-gpt-4o/">https://openai.com/index/hello-gpt-4o/</a></p>

<hr />

<h3 id="3-claude-35-sonnet-anthropic"><strong>3. Claude 3.5 Sonnet (Anthropic)</strong></h3>
<p>तपाईं यदि वेब डेभलपर हुनुहुन्छ र एउटा AI पेयर प्रोग्रामर चाहनुहुन्छ जसले तपाईंको कोडलाई रिभ्यू गरेर सुधार सुझाव दिन सकोस्, त यो मोडेल ठीक पड्छ। यसले React, Node.js, वा Django मा जटिल फीचर पनि सजिलै बनाउन मद्दत गर्छ। तथ्याङ्क विश्लेषकहरूले यसलाई प्रयोग गरेर SQL क्वेरी अप्टिमाइज गर्न, A/B टेस्टको नतिजा व्याख्या गर्न, वा स्ट्याटिस्टिकल मोडेल बनाउन सक्छन्। अरूभन्दा फरक के हो भने, यो GPT-4 जत्तिकै बुद्धिमान छ तर धेरै सस्तो र छिटो—विशेष गरी कोडिङ र लम्बा डाकुमेन्ट सम्झनमा यो अग्रणी छ।<br />
🔗 <a href="https://www.anthropic.com/news/claude-3-5-sonnet">https://www.anthropic.com/news/claude-3-5-sonnet</a></p>

<hr />

<h3 id="4-claude-3-opus-anthropic"><strong>4. Claude 3 Opus (Anthropic)</strong></h3>
<p>मानौं तपाईंले एउटा डाटा साइन्स प्रोजेक्ट गर्दै हुनुहुन्छ जसमा ठूलो डाटासेटबाट गहिरो अन्तर्दृष्टि निकाल्नु पर्छ—जस्तै ग्राहक व्यवहारको पूर्वानुमान। त्यहाँ Claude 3 Opus ले तपाईंलाई सही स्ट्याटिस्टिकल एप्रोच, मोडेल चयन, र परिणाम व्याख्या गर्न मद्दत गर्छ। वेब डेभलपरहरूले यसलाई प्रयोग गरेर जटिल सिस्टम आर्किटेक्चर डिजाइन गर्न सक्छन्। अरूभन्दा फरक के हो भने, यो Claude परिवारको सबैभन्दा शक्तिशाली मोडेल हो—GPT-4 भन्दा पनि केही काममा राम्रो, तर महँगो। त्यसैले यो केवल तब प्रयोग गर्नुहोस् जब तपाईंलाई अत्यधिक जटिल तर्क चाहिन्छ।<br />
🔗 <a href="https://www.anthropic.com/claude">https://www.anthropic.com/claude</a></p>

<hr />

<h3 id="5-gemini-15-pro-google"><strong>5. Gemini 1.5 Pro (Google)</strong></h3>
<p>तपाईं यदि वेब डेभलपर हुनुहुन्छ र एउटा एप बनाउन चाहनुहुन्छ जसले पूरै PDF, लग फाइल, वा यहाँसम्म कि घण्टौंको भिडियो ट्रान्सक्रिप्टलाई एकैचोटि विश्लेषण गर्न सकोस् भने, Gemini 1.5 Pro नै उत्तम छ। यसको 1 मिलियन टोकन सम्मको कन्टेक्स्ट विन्डोले यसलाई अन्य सबैभन्दा फरक बनाउँछ। तथ्याङ्क विश्लेषकहरूले यसलाई प्रयोग गरेर लामो समयको डाटा ट्रेन्ड विश्लेषण गर्न सक्छन्। अरूभन्दा फरक के हो भने, यो Google Workspace (Docs, Sheets) सँग जोडिएको छ—त्यसैले डाटा टिमहरूका लागि यो धेरै सुविधाजनक छ।<br />
🔗 <a href="https://gemini.google.com/">https://gemini.google.com/</a></p>

<hr />

<h3 id="6-llama-3-70b-meta"><strong>6. Llama 3 70B (Meta)</strong></h3>
<p>तपाईं यदि वेब डेभलपर हुनुहुन्छ र आफ्नै AI च्याटबट बनाउन चाहनुहुन्छ जसमा तपाईंले पूर्ण नियन्त्रण राख्न सकोस्—जस्तै कुनै डाटा बाहिर नजाओस्—भने Llama 3 70B उत्तम छ। यो खुला मोडेल हो, त्यसैले तपाईं यसलाई आफ्नै सर्भरमा चलाउन सक्नुहुन्छ। तथ्याङ्क विश्लेषकहरूले यसलाई प्रयोग गरेर गोपनीय डाटामा कोड लेख्न सक्छन् बिना कुनै बाह्य API मा निर्भर भए। अरूभन्दा फरक के हो भने, यो खुला मोडेलहरूमध्ये सबैभन्दा राम्रो छ—GPT-3.5 जत्तिकै बुद्धिमान, तर निःशुल्क र व्यावसायिक प्रयोग गर्न मन्जुर।<br />
🔗 <a href="https://llama.meta.com/llama3/">https://llama.meta.com/llama3/</a></p>

<hr />

<h3 id="7-llama-3-8b-meta"><strong>7. Llama 3 8B (Meta)</strong></h3>
<p>तपाईं यदि एउटा सानो स्टार्टअपमा काम गर्दै हुनुहुन्छ वा आफ्नै ल्यापटपमा AI टेस्ट गर्न चाहनुहुन्छ भने, Llama 3 8B ले काम गर्छ। यो सानो तर धेरै तेज—यसलाई तपाईंको मोबाइल वा ल्यापटपमा पनि चलाउन सकिन्छ। वेब डेभलपरहरूले यसलाई प्रयोग गरेर लोकल डेभलपमेन्ट एन्भाइरनमेन्टमा कोड सुझाव पाउन सक्छन्। तथ्याङ्क विश्लेषकहरूले यसलाई प्रयोग गरेर डाटा स्क्रिप्ट ड्राफ्ट गर्न सक्छन्। अरूभन्दा फरक के हो भने, यो 70B भन्दा धेरै हल्का छ तर प्रदर्शन अझै पनि उत्कृष्ट—विशेष गरी सीमित स्रोत भएका परियोजनाहरूका लागि यो आदर्श छ।<br />
🔗 <a href="https://llama.meta.com/llama3/">https://llama.meta.com/llama3/</a></p>

<hr />

<h3 id="8-mistral-large-mistral-ai"><strong>8. Mistral Large (Mistral AI)</strong></h3>
<p>तपाईं यदि युरोपमा काम गर्दै हुनुहुन्छ वा GDPR जस्ता डाटा सुरक्षा नियम पालना गर्नुपर्छ भने, Mistral Large राम्रो विकल्प हो। यो फ्रान्समा बनेको मोडेल हो, त्यसैले डाटा प्राइभेसीमा ध्यान दिइएको छ। वेब डेभलपरहरूले यसलाई प्रयोग गरेर मल्टीलिङ्गुअल वेबसाइट (जस्तै नेपाली + अंग्रेजी) को लागि कन्टेन्ट जेनरेट गर्न सक्छन्। तथ्याङ्क विश्लेषकहरूले यसलाई प्रयोग गरेर युरोपेली डाटासेटमा विश्लेषण गर्न सक्छन्। अरूभन्दा फरक के हो भने, यो GPT-3.5 जत्तिकै क्षमता राख्छ तर युरोपियन डाटा नीतिको साथ—त्यसैले युरोपमा काम गर्ने टिमहरूका लागि यो विशेष रूपमा उपयुक्त छ।<br />
🔗 <a href="https://mistral.ai/news/mistral-large/">https://mistral.ai/news/mistral-large/</a></p>

<hr />

<h3 id="9-mixtral-8x22b-mistral-ai"><strong>9. Mixtral 8x22B (Mistral AI)</strong></h3>
<p>तपाईं यदि ठूलो परियोजनाका लागि उच्च-गुणस्तरको AI चाहनुहुन्छ तर लागत नियन्त्रण गर्न चाहनुहुन्छ भने, Mixtral 8x22B ले “मिक्सचर अफ एक्सपर्ट्स” (MoE) तकनीक प्रयोग गरेर तपाईंलाई उच्च प्रदर्शन कम खर्चमा दिन्छ। वेब डेभलपरहरूले यसलाई प्रयोग गरेर ठूला स्केलका च्याट सिस्टम बनाउन सक्छन्। तथ्याङ्क विश्लेषकहरूले यसलाई प्रयोग गरेर धेरै विषयमा एकैचोटि विश्लेषण गर्न सक्छन्—जस्तै आर्थिक, सामाजिक, र व्यवहार डाटा। अरूभन्दा फरक के हो भने, यो खुला मोडेल हो तर 70B जत्तिकै शक्तिशाली—तर MoE ले गर्दा यसले कम GPU पावर मात्र प्रयोग गर्छ।<br />
🔗 <a href="https://mistral.ai/news/mixtral-8x22b/">https://mistral.ai/news/mixtral-8x22b/</a></p>

<hr />

<h3 id="10-mixtral-8x7b-mistral-ai"><strong>10. Mixtral 8x7B (Mistral AI)</strong></h3>
<p>तपाईं यदि बजेट सीमित छ तर फेरि पनि राम्रो AI चाहनुहुन्छ भने, Mixtral 8x7B ले तपाईंलाई Llama 3 70B जत्तिकै गुणस्तर दिन्छ तर धेरै कम लागतमा। वेब डेभलपरहरूले यसलाई प्रयोग गरेर रियल-टाइम कोड सहयता पाउन सक्छन्। तथ्याङ्क विश्लेषकहरूले यसलाई प्रयोग गरेर डाटा क्लिनिङ, भिजुअलाइजेसन, र रिपोर्ट जेनरेसन गर्न सक्छन्। अरूभन्दा फरक के हो भने, यो पहिलो खुला MoE मोडेल हो—यसले आवश्यकता अनुसार मात्र “एक्सपर्ट” सक्रिय गर्छ, त्यसैले यो धेरै कुशल छ।<br />
🔗 <a href="https://mistral.ai/news/mixtral-8x7b/">https://mistral.ai/news/mixtral-8x7b/</a></p>

<hr />

<h3 id="11-command-r-cohere"><strong>11. Command R+ (Cohere)</strong></h3>
<p>तपाईं यदि कम्पनीको लागि एउटा इन्टरनल नलेज बेस बनाउन चाहनुहुन्छ जसले कर्मचारीहरूलाई डाकुमेन्टबाट सीधा जानकारी दिन सकोस् भने, Command R+ ठीक पड्छ। यो RAG (Retrieval-Augmented Generation) का लागि विशेष रूपमा डिजाइन गरिएको छ। वेब डेभलपरहरूले यसलाई प्रयोग गरेर सर्च-अप्टिमाइज्ड AI च्याट बनाउन सक्छन्। तथ्याङ्क विश्लेषकहरूले यसलाई प्रयोग गरेर ठूला रिपोर्टबाट निष्कर्ष निकाल्न सक्छन्। अरूभन्दा फरक के हो भने, यो केवल “कुरा गर्न” मात्र होइन, “खोजेर जवाफ दिन” मा विशेषज्ञ छ—त्यसैले एन्टरप्राइज प्रयोगका लागि यो उत्तम छ।<br />
🔗 <a href="https://cohere.com/command-r-plus">https://cohere.com/command-r-plus</a></p>

<hr />

<h3 id="12-qwen-max-alibaba"><strong>12. Qwen-Max (Alibaba)</strong></h3>
<p>तपाईं यदि चीन वा एसियाली बजारमा काम गर्दै हुनुहुन्छ भने, Qwen-Max ले नेपाली, चिनियाँ, अंग्रेजी सबैमा राम्रो काम गर्छ। वेब डेभलपरहरूले यसलाई प्रयोग गरेर एसियाली भाषामा एप्लिकेसन बनाउन सक्छन्। तथ्याङ्क विश्लेषकहरूले यसलाई प्रयोग गरेर चीनको इ-कमर्स डाटा विश्लेषण गर्न सक्छन्। अरूभन्दा फरक के हो भने, यो Alibaba Cloud सँग जोडिएको छ—त्यसैले एसियामा काम गर्ने टिमहरूका लागि यो धेरै सुविधाजनक छ।<br />
🔗 <a href="https://qwen.ai/">https://qwen.ai/</a></p>

<hr />

<h3 id="13-qwen-72b-alibaba"><strong>13. Qwen-72B (Alibaba)</strong></h3>
<p>तपाईं यदि खुला मोडेल चाहनुहुन्छ जसले चिनियाँ र अंग्रेजी दुवैमा उत्कृष्ट काम गरोस् भने, Qwen-72B उत्तम छ। वेब डेभलपरहरूले यसलाई प्रयोग गरेर मल्टीलिङ्गुअल वेबसाइटको ब्याकएन्ड AI बनाउन सक्छन्। तथ्याङ्क विश्लेषकहरूले यसलाई प्रयोग गरेर एसियाली बजारको डाटा विश्लेषण गर्न सक्छन्। अरूभन्दा फरक के हो भने, यो खुला मोडेलहरूमध्ये चिनियाँ भाषामा सबैभन्दा राम्रो—त्यसैले ग्लोबल टिमहरूका लागि पनि यो महत्त्वपूर्ण छ।<br />
🔗 <a href="https://huggingface.co/Qwen/Qwen-72B">https://huggingface.co/Qwen/Qwen-72B</a></p>

<hr />

<h3 id="14-phi-3-mini-microsoft"><strong>14. Phi-3-mini (Microsoft)</strong></h3>
<p>तपाईं यदि आफ्नो फोन वा ल्यापटपमा AI चलाउन चाहनुहुन्छ—जस्तै ऑफलाइन कोड सहयता वा डाटा नोट सारांश—भने Phi-3-mini ठीक पड्छ। यो मात्र 3.8B प्यारामिटरको सानो मोडेल हो तर Llama 3 8B जत्तिकै बुद्धिमान। वेब डेभलपरहरूले यसलाई प्रयोग गरेर लोकल IDE मा AI प्लगइन बनाउन सक्छन्। तथ्याङ्क विश्लेषकहरूले यसलाई प्रयोग गरेर डाटा नोटबुकमा ऑफलाइन सहयता पाउन सक्छन्। अरूभन्दा फरक के हो भने, यो Microsoft ले बनाएको छ र Windows, Azure सँग जोडिन सक्छ—त्यसैले Microsoft इकोसिस्टम प्रयोग गर्ने टिमहरूका लागि यो उत्तम छ।<br />
🔗 <a href="https://azure.microsoft.com/en-us/products/phi-3">https://azure.microsoft.com/en-us/products/phi-3</a></p>

<hr />

<h3 id="15-phi-3-medium-microsoft"><strong>15. Phi-3-medium (Microsoft)</strong></h3>
<p>तपाईं यदि थोरै बजेटमा धेरै शक्ति चाहनुहुन्छ भने, Phi-3-medium ले 14B प्यारामिटरमा Llama 3 70B जत्तिकै प्रदर्शन दिन्छ। वेब डेभलपरहरूले यसलाई प्रयोग गरेर ठूला एप्लिकेसनको लागि AI ब्याकएन्ड बनाउन सक्छन्। तथ्याङ्क विश्लेषकहरूले यसलाई प्रयोग गरेर जटिल स्ट्याटिस्टिकल मोडेल बनाउन सक्छन्। अरूभन्दा फरक के हो भने, यो सानो तर शक्तिशाली—त्यसैले क्लाउड खर्च घटाउन चाहने टिमहरूका लागि यो आदर्श छ।<br />
🔗 <a href="https://azure.microsoft.com/en-us/products/phi-3">https://azure.microsoft.com/en-us/products/phi-3</a></p>

<hr />

<h3 id="16-grok-15-xai"><strong>16. Grok-1.5 (xAI)</strong></h3>
<p>तपाईं यदि सोशल मिडिया डाटा (विशेष गरी X/Twitter) बाट रियल-टाइम अन्तर्दृष्टि चाहनुहुन्छ भने, Grok-1.5 ले X प्रीमियम+ सदस्यतामार्फत तुरुन्त डाटा पहुँच दिन्छ। वेब डेभलपरहरूले यसलाई प्रयोग गरेर ट्रेन्ड एनालिसिस टूल बनाउन सक्छन्। तथ्याङ्क विश्लेषकहरूले यसलाई प्रयोग गरेर जनमत सर्वेक्षण विश्लेषण गर्न सक्छन्। अरूभन्दा फरक के हो भने, यो एकमात्र मोडेल हो जसले सीधा X को लाइभ डाटा प्रयोग गर्छ—त्यसैले सोशल एनालिटिक्सका लागि यो अनूठो छ।<br />
🔗 <a href="https://x.ai/grok/">https://x.ai/grok/</a></p>

<hr />

<h3 id="17-dbrx-databricks"><strong>17. DBRX (Databricks)</strong></h3>
<p>तपाईं यदि डाटा इन्जिनियर वा तथ्याङ्क विश्लेषक हुनुहुन्छ र Databricks प्लेटफर्म प्रयोग गर्दै हुनुहुन्छ भने, DBRX ले तपाईंको डाटा वेयरहाउस र AI लाई जोड्छ। यसले SQL, Python, र डाटा पाइपलाइन दुवैमा मद्दत गर्छ। वेब डेभलपरहरूले यसलाई प्रयोग गरेर डाटा-ड्रिभन एप्लिकेसन बनाउन सक्छन्। अरूभन्दा फरक के हो भने, यो MoE आर्किटेक्चरमा बनेको छ र डाटा साइन्सका लागि विशेष रूपमा प्रशिक्षित—त्यसैले डाटा टिमहरूका लागि यो उत्तम छ।<br />
🔗 <a href="https://www.databricks.com/blog/introducing-dbrx">https://www.databricks.com/blog/introducing-dbrx</a></p>

<hr />

<h3 id="18-yi-34b-01ai"><strong>18. Yi-34B (01.ai)</strong></h3>
<p>तपाईं यदि चिनियाँ र अंग्रेजी दुवैमा काम गर्ने टिममा हुनुहुन्छ भने, Yi-34B ले दुवै भाषामा उत्कृष्ट कोडिङ र तथ्याङ्क क्षमता दिन्छ। वेब डेभलपरहरूले यसलाई प्रयोग गरेर मल्टीलिङ्गुअल एप्लिकेसन बनाउन सक्छन्। तथ्याङ्क विश्लेषकहरूले यसलाई प्रयोग गरेर चिनियाँ बजारको डाटा विश्लेषण गर्न सक्छन्। अरूभन्दा फरक के हो भने, यो खुला मोडेल हो तर चिनियाँ भाषामा Llama 3 भन्दा पनि राम्रो—त्यसैले ग्लोबल टिमहरूका लागि यो महत्त्वपूर्ण छ।<br />
🔗 <a href="https://huggingface.co/01-ai/Yi-34B">https://huggingface.co/01-ai/Yi-34B</a></p>

<hr />

<h3 id="19-falcon-180b-tii"><strong>19. Falcon 180B (TII)</strong></h3>
<p>तपाईं यदि अनुसन्धान टिममा हुनुहुन्छ वा आफ्नै LLM फाइन-ट्युन गर्न चाहनुहुन्छ भने, Falcon 180B ले 180 अरब प्यारामिटरको शक्ति दिन्छ। वेब डेभलपरहरूले यसलाई प्रयोग गरेर बेस मोडेलको रूपमा प्रयोग गर्न सक्छन्। तथ्याङ्क विश्लेषकहरूले यसलाई प्रयोग गरेर ठूला डाटासेटमा नयाँ मोडेल प्रशिक्षण गर्न सक्छन्। अरूभन्दा फरक के हो भने, यो Apache 2.0 लाइसेन्समा खुला छ—त्यसैले कुनै पनि व्यावसायिक प्रयोग गर्न सकिन्छ।<br />
🔗 <a href="https://falconllm.tii.ae/">https://falconllm.tii.ae/</a></p>

<hr />

<h3 id="20-gemma-7b-google"><strong>20. Gemma 7B (Google)</strong></h3>
<p>तपाईं यदि Google टुल्स प्रयोग गर्ने टिममा हुनुहुन्छ भने, Gemma 7B ले Google को Gemini तकनीकको सानो संस्करण दिन्छ। वेब डेभलपरहरूले यसलाई प्रयोग गरेर Chrome एक्सटेन्सन वा Firebase एप्लिकेसनमा AI जोड्न सक्छन्। तथ्याङ्क विश्लेषकहरूले यसलाई प्रयोग गरेर Colab नोटबुकमा ऑफलाइन AI सहयता पाउन सक्छन्। अरूभन्दा फरक के हो भने, यो Google द्वारा बनाइएको खुला मोडेल हो—त्यसैले Google इकोसिस्टमसँग जोड्न सजिलो छ।<br />
🔗 <a href="https://ai.google.dev/gemma">https://ai.google.dev/gemma</a></p>

<hr />

<h3 id="21-gemma-2b-google"><strong>21. Gemma 2B (Google)</strong></h3>
<p>तपाईं यदि विद्यार्थी हुनुहुन्छ वा आफ्नो ल्यापटपमा AI सिक्न चाहनुहुन्छ भने, Gemma 2B ले सबैभन्दा हल्को तर प्रभावकारी अनुभव दिन्छ। वेब डेभलपरहरूले यसलाई प्रयोग गरेर लोकल प्रोटोटाइप बनाउन सक्छन्। तथ्याङ्क विश्लेषकहरूले यसलाई प्रयोग गरेर डाटा साइन्सको बुनियादी अभ्यास गर्न सक्छन्। अरूभन्दा फरक के हो भने, यो धेरै सानो छ—तर Google को तकनीकमा आधारित, त्यसैले शिक्षा र प्रोटोटाइपिङका लागि यो उत्तम छ।<br />
🔗 <a href="https://ai.google.dev/gemma">https://ai.google.dev/gemma</a></p>

<hr />

<h3 id="22-orion-14b-nvidia"><strong>22. Orion-14B (NVIDIA)</strong></h3>
<p>तपाईं यदि NVIDIA GPU प्रयोग गर्दै हुनुहुन्छ भने, Orion-14B ले NVIDIA NIM माइक्रोसर्भिसमा सीधा चल्छ—एक क्लिकमा डिप्लोइ गर्न सकिन्छ। वेब डेभलपरहरूले यसलाई प्रयोग गरेर GPU-अप्टिमाइज्ड AI एप्लिकेसन बनाउन सक्छन्। तथ्याङ्क विश्लेषकहरूले यसलाई प्रयोग गरेर CUDA-आधारित डाटा प्रोसेसिङ गर्न सक्छन्। अरूभन्दा फरक के हो भने, यो NVIDIA हार्डवेयरका लागि विशेष रूपमा अप्टिमाइज गरिएको छ—त्यसैले GPU प्रयोग गर्ने टिमहरूका लागि यो उत्तम छ।<br />
🔗 <a href="https://www.nvidia.com/en-us/ai-data-science/orion/">https://www.nvidia.com/en-us/ai-data-science/orion/</a></p>

<hr />

<h3 id="23-snowflake-arctic-snowflake"><strong>23. Snowflake Arctic (Snowflake)</strong></h3>
<p>तपाईं यदि Snowflake डाटा वेयरहाउस प्रयोग गर्दै हुनुहुन्छ भने, Arctic ले SQL र LLM लाई जोड्छ। वेब डेभलपरहरूले यसलाई प्रयोग गरेर डाटा-ड्रिभन ड्यासबोर्ड बनाउन सक्छन्। तथ्याङ्क विश्लेषकहरूले यसलाई प्रयोग गरेर “मलाई गत महिनाको बिक्रीको ट्रेन्ड देखाउ” जस्ता प्राकृतिक भाषा प्रश्नबाट सीधा SQL जेनरेट गर्न सक्छन्। अरूभन्दा फरक के हो भने, यो Snowflake भित्रै चल्छ—त्यसैले डाटा बाहिर निस्कन्न, सुरक्षित र छिटो।<br />
🔗 <a href="https://www.snowflake.com/blog/snowflake-arctic/">https://www.snowflake.com/blog/snowflake-arctic/</a></p>

<hr />

<h3 id="24-zephyr-7b-hugging-face"><strong>24. Zephyr-7B (Hugging Face)</strong></h3>
<p>तपाईं यदि एउटा राम्रो च्याट एप्स बनाउन चाहनुहुन्छ जसले मानिस जस्तै कुरा गरोस् भने, Zephyr-7B ले Llama 3 लाई “DPO” तकनीकले फाइन-ट्युन गरेर बनाइएको छ। वेब डेभलपरहरूले यसलाई प्रयोग गरेर कस्टमर सपोर्ट च्याटबट बनाउन सक्छन्। तथ्याङ्क विश्लेषकहरूले यसलाई प्रयोग गरेर यूजर फीडब्याक विश्लेषण गर्न सक्छन्। अरूभन्दा फरक के हो भने, यो खुला मोडेलहरूमध्ये सबैभन्दा राम्रो च्याट अनुभव दिन्छ—त्यसैले AI एसिस्टेन्ट बनाउने टिमहरूका लागि यो उत्तम छ।<br />
🔗 <a href="https://huggingface.co/HuggingFaceH4/zephyr-7b-beta">https://huggingface.co/HuggingFaceH4/zephyr-7b-beta</a></p>

<hr />

<h3 id="25-nous-hermes-2-nous-research"><strong>25. Nous-Hermes 2 (Nous Research)</strong></h3>
<p>तपाईं यदि क्रिएटिभ वा लजिकल टास्क—जस्तै पजल समाधान, कथा लेखन, वा गेम लजिक—मा AI चाहनुहुन्छ भने, Nous-Hermes 2 ले Mixtral र Llama लाई समुदायले फाइन-ट्युन गरेर बनाएको छ। वेब डेभलपरहरूले यसलाई प्रयोग गरेर गेम AI वा इन्टरएक्टिभ स्टोरी बनाउन सक्छन्। तथ्याङ्क विश्लेषकहरूले यसलाई प्रयोग गरेर अनौपचारिक डाटा (जस्तै सर्वेक्षण खुला प्रश्न) विश्लेषण गर्न सक्छन्। अरूभन्दा फरक के हो भने, यो समुदाय-सञ्चालित छ—त्यसैले क्रिएटिभ र अनौपचारिक काममा यो धेरै राम्रो काम गर्छ।<br />
🔗 <a href="https://huggingface.co/NousResearch">https://huggingface.co/NousResearch</a></p>

<hr />]]></content><author><name>Anish Bhattarai</name></author><summary type="html"><![CDATA[लार्ज ल्याङ्ग्वेज मोडेल (LLM) को दुनियाँमा तपाईंलाई कसैले “च्याटजीपीटी जस्तो AI” को बारेमा सोधे भने भन्नलाई हजारौं विकल्प देखिन्छन्। कुनै ओपन सोर्स छन, कुनै प्रोपराटरी; कुनै महँगो छन, कुनै निःशुल्क; कुनै कोडिङमा राम्रो, कुनै डाटा विश्लेषणमा उत्कृष्ट —सबै किसिमका मोडेलहरू छन्। त्यसैले मैले तल २५ वटा प्रमुख LLM को सूची तयार गरेको छु, जसमा प्रत्येकको लागि कस्तो काममा उपयोग गर्न सकिन्छ, वेब डेभलपर वा डेटा एनालिष्ट/स्टाटसियनले कहिले प्रयोग गर्नुपर्छ, र अरूभन्दा किन फरक छ भन्ने कुरा बुझाउन खोजीएको छ।]]></summary></entry><entry><title type="html">VS Code मार्फत वेब प्रोजेक्टमा ChatGPT, Claude र Deepseek AI कसरी प्रयोग गर्ने?</title><link href="https://www.enepal.net.np//2025/09/19/how-to-use-ai-in-web-project.html" rel="alternate" type="text/html" title="VS Code मार्फत वेब प्रोजेक्टमा ChatGPT, Claude र Deepseek AI कसरी प्रयोग गर्ने?" /><published>2025-09-19T02:23:12+00:00</published><updated>2025-09-19T02:23:12+00:00</updated><id>https://www.enepal.net.np//2025/09/19/how-to-use-ai-in-web-project</id><content type="html" xml:base="https://www.enepal.net.np//2025/09/19/how-to-use-ai-in-web-project.html"><![CDATA[<p>AI अब coding मात्र होइन, software development workflow को अनिवार्य हिस्सा बन्दै गएको छ। <a href="https://openai.com/">OpenAI</a> को <a href="https://chatgpt.com/">ChatGPT</a>, <a href="https://www.anthropic.com/">Anthropic</a> को <a href="https://claude.ai/">Claude</a>, र <a href="https://www.deepseek.com/">Deepseek</a> जस्ता LLM (Large Language Models) ले डेभलपरको प्रोडक्टिभिटी कयौ गुणा बढाइरहेका छन्। यसको प्रयोग शुरु गरी नसकेकाहरुको मनमा प्रश्न उठ्न सक्छ  VS Code मा यी AI कसरी जोड्ने? Subscription भन्दा API किन सस्तो हुन्छ? आफ्नो प्रोजेक्ट वा working directory भित्र कसरी integrate गर्ने?</p>

<p>यो लेख अरु <a href="https://luvvoice.com/">कसैले पढेर सुनाई दिओस</a> भन्ने चाहनु हुन्छ भने तलको बटनमा क्लिक गरेर अडियो प्ले गर्नुहोस ।</p>
<audio controls="">
  <source src="/audio/how-to-ai.mp3" type="audio/mp3" />
  Your browser does not support the audio element.
</audio>

<blockquote>
  <p><strong>*Visual Studio Code सबैभन्दा लोकप्रिय code editor हो, र यसमा AI ईन्ट्रीग्रेट गर्दा फाईदा धेरै छन्। Coding गर्दा हुने repetitive काम घट्छ, boilerplate code तुरुन्त generate हुन्छ, error debugging सजिलो हुन्छ, लामो वा अस्तव्यस्त code लाई refactor गरेर readable बनाउन सकिन्छ, documentation स्वतः generate हुन्छ, र नयाँ framework वा library सिक्दा AI बाट live help पनि पाइन्छ। सरल शब्दमा भन्नुपर्दा, AI VS Code ईन्ट्रीग्रेट गर्दा तपाईँले pair-programmer जस्तै support पाउनुहुन्छ।</strong></p>
</blockquote>

<p>यसको लागि सुरुमा केही कुरा आवश्यक हुन्छ। पहिलो भनेको <a href="https://code.visualstudio.com/">VS Code</a> नै हो , जुन आधिकारिक वेबसाइटबाट डाउनलोड गर्न सकिन्छ। त्यसपछि, तपाईँलाई AI provider को API Key चाहिन्छ — ChatGPT को लागि OpenAI बाट, Claude को लागि Anthropic बाट, र Deepseek को लागि Deepseek platform बाट। अन VS Code मा AI plugin वा extension install गर्नुपर्छ। अहिले प्रचलित extension हरुमा <a href="">Continue</a>, <a href="">CodeGPT</a> र [ChatGPT] – EasyCode पर्छन्, जुन VS Code Marketplace बाट सजिलै उपलब्ध छन्।</p>

<p>अहिले धेरैले ChatGPT Plus वा Claude Pro जस्ता subscription लिएका हुन्छन्, तर subscription र API बीचमा cost फरक हुन्छ। Subscription मा मासिक फिक्स शुल्क हुन्छ, जस्तै ChatGPT Plus को लागि $20 प्रति महिना। तर API मा pay-as-you-go हुन्छ, जसमा प्रयोगअनुसार मात्र बिल आउँछ। उदाहरणका लागि, GPT-4o-mini API लगभग $0.60 प्रति १M tokens पर्छ भने Claude 3.5 Sonnet लगभग $3 प्रति १M tokens पर्छ। Deepseek अझै किफायती दरमा उपलब्ध हुन्छ। त्यसैले heavy user का लागि subscription सजिलो हुन्छ भने selective वा casual प्रयोगकर्ताका लागि API नै धेरै सस्तो विकल्प हो।</p>

<p>Extension install गर्ने प्रक्रिया पनि सजिलो छ। VS Code खोलेर Extensions प्यानल (Ctrl+Shift+X) मा जानुपर्छ र “Continue” वा “CodeGPT” खोजेर install गर्नुपर्छ। Extension install भएपछि Command Palette (Ctrl+Shift+P) खोलेर “Set API Key” मा आफ्नो key राख्न सकिन्छ। चाहिने खण्डमा settings.json फाइलमा पनि API key राख्न सकिन्छ। त्यसपछि editor भित्रै AI panel प्रयोग गर्न सकिन्छ।</p>

<p>अब कुरा गरौँ आफ्नो working directory वा प्रोजेक्टमा AI integrate गर्ने बारेमा। मानौँ तपाईँ CodeIgniter 4 र Tailwind CSS प्रोजेक्टमा AI जोड्न चाहनुहुन्छ भने backend मा एउटा helper library बनाउन सकिन्छ, जसले OpenAI API सँग request पठाएर response ल्याउँछ। त्यसको लागि cURL प्रयोग गरेर <a href="https://api.openai.com/v1/chat/completions">https://api.openai.com/v1/chat/completions</a> endpoint मा request पठाउने र user prompt अनुसार response फर्काउने व्यवस्था गर्न सकिन्छ। Controller बाट सो library call गरेर response frontend (<a href="https://react.dev/">React</a>, <a href="https://vuejs.org/">Vue</a> वा <a href="https://tailwindcss.com/">Tailwind UI</a> ) मा देखाउन सकिन्छ। यसरी AI feature project को working directory भित्र integrate हुन्छ।</p>

<h3 id="working-directory--project-मा-integration">Working Directory / Project मा Integration</h3>

<p><strong><em>यहाँ एउटा साधारण तर practical उदाहरण छ — CodeIgniter 4 + Tailwind प्रोजेक्टमा backend बाट OpenAI call गर्ने तरिका।</em></strong></p>

<h3 id="step-1-helper-library-applibrariesopenaiphp">Step 1: Helper Library (app/Libraries/OpenAI.php)</h3>

<div class="language-php highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cp">&lt;?php</span>
<span class="kn">namespace</span> <span class="nn">App\Libraries</span><span class="p">;</span>

<span class="kd">class</span> <span class="nc">OpenAI</span> <span class="p">{</span>
    <span class="k">private</span> <span class="nv">$apiKey</span><span class="p">;</span>

    <span class="k">public</span> <span class="k">function</span> <span class="n">__construct</span><span class="p">()</span> <span class="p">{</span>
        <span class="nv">$this</span><span class="o">-&gt;</span><span class="n">apiKey</span> <span class="o">=</span> <span class="nb">getenv</span><span class="p">(</span><span class="s1">'OPENAI_API_KEY'</span><span class="p">);</span>
    <span class="p">}</span>

    <span class="k">public</span> <span class="k">function</span> <span class="n">ask</span><span class="p">(</span><span class="nv">$prompt</span><span class="p">)</span> <span class="p">{</span>
        <span class="nv">$ch</span> <span class="o">=</span> <span class="nb">curl_init</span><span class="p">(</span><span class="s2">"https://api.openai.com/v1/chat/completions"</span><span class="p">);</span>
        <span class="nb">curl_setopt</span><span class="p">(</span><span class="nv">$ch</span><span class="p">,</span> <span class="no">CURLOPT_HTTPHEADER</span><span class="p">,</span> <span class="p">[</span>
            <span class="s2">"Authorization: Bearer "</span> <span class="mf">.</span> <span class="nv">$this</span><span class="o">-&gt;</span><span class="n">apiKey</span><span class="p">,</span>
            <span class="s2">"Content-Type: application/json"</span><span class="p">,</span>
        <span class="p">]);</span>

        <span class="nv">$data</span> <span class="o">=</span> <span class="p">[</span>
            <span class="s2">"model"</span> <span class="o">=&gt;</span> <span class="s2">"gpt-4o-mini"</span><span class="p">,</span>
            <span class="s2">"messages"</span> <span class="o">=&gt;</span> <span class="p">[</span>
                <span class="p">[</span><span class="s2">"role"</span> <span class="o">=&gt;</span> <span class="s2">"user"</span><span class="p">,</span> <span class="s2">"content"</span> <span class="o">=&gt;</span> <span class="nv">$prompt</span><span class="p">]</span>
            <span class="p">],</span>
        <span class="p">];</span>

        <span class="nb">curl_setopt</span><span class="p">(</span><span class="nv">$ch</span><span class="p">,</span> <span class="no">CURLOPT_POSTFIELDS</span><span class="p">,</span> <span class="nb">json_encode</span><span class="p">(</span><span class="nv">$data</span><span class="p">));</span>
        <span class="nb">curl_setopt</span><span class="p">(</span><span class="nv">$ch</span><span class="p">,</span> <span class="no">CURLOPT_RETURNTRANSFER</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>

        <span class="nv">$response</span> <span class="o">=</span> <span class="nb">curl_exec</span><span class="p">(</span><span class="nv">$ch</span><span class="p">);</span>
        <span class="nb">curl_close</span><span class="p">(</span><span class="nv">$ch</span><span class="p">);</span>

        <span class="k">return</span> <span class="nb">json_decode</span><span class="p">(</span><span class="nv">$response</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
    <span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>

<h3 id="step-2-controller-बाट-call-गर्ने-उदाहरण">Step 2: Controller बाट Call गर्ने उदाहरण</h3>

<div class="language-php highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ai</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">\App\Libraries\OpenAI</span><span class="p">();</span>
<span class="nv">$response</span> <span class="o">=</span> <span class="nv">$ai</span><span class="o">-&gt;</span><span class="nf">ask</span><span class="p">(</span><span class="s2">"Explain CodeIgniter 4 validation in Nepali"</span><span class="p">);</span>
<span class="k">echo</span> <span class="nv">$response</span><span class="p">[</span><span class="s1">'choices'</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s1">'message'</span><span class="p">][</span><span class="s1">'content'</span><span class="p">];</span>
</code></pre></div></div>

<p>यो pattern ले backend मा सुरक्षित तरिकाले API key प्रयोग गर्छ, response JSON मा फर्काउँछ, र frontend (React/Vue/Tailwind UI वा साधारण view) मा देखाउन सजिलो बनाउँछ।</p>

<hr />

<h3 id="prompt-engineering--राम्रो-prompt-लेख्ने-कला">Prompt Engineering — राम्रो Prompt लेख्ने कला</h3>

<p>AI बाट प्रभावकारी नतीजा निकाल्न prompt नै सबैभन्दा महत्वपूर्ण हुन्छ। राम्रो prompt सामान्यतः Context + Instruction + Desired Output Format हुन्छ। केहि प्रयोगी example हरु:</p>

<p><strong><em>Bug Fixing</em></strong></p>

<p>Here is my error: [paste error]
Here is my code: [paste code]
Fix the issue and explain what was wrong.</p>

<p><strong><em>Refactoring</em></strong></p>

<p>Refactor the following PHP code to be cleaner, more secure, and follow best practices. Add comments in Nepali.
[paste code]</p>

<p><strong><em>Documentation</em></strong></p>

<p>Generate detailed documentation in Nepali for this CodeIgniter 4 controller:
[paste controller code]</p>

<p><strong><em>Learning</em></strong></p>

<p>Teach me CodeIgniter 4 sessions step by step in Nepali, with simple examples.</p>

<p><strong><em>Pro Tip: role-play गराएर AI लाई context दिनुहोस्, जस्तै:</em></strong></p>

<p>Act as a senior CodeIgniter 4 developer. Review my code and suggest performance improvements.</p>

<hr />

<p>VS Code मा ChatGPT, Claude वा Deepseek API जोड्दा coding workflow धेरै productive हुन्छ। Subscription भन्दा API cost-efficient हुन्छ, विशेषगरी कम प्रयोगकर्ताका लागि। Extension install गरेर editor भित्रै AI प्रयोग गर्न सकिन्छ, अनि project वा working directory मा integrate गरेर आफ्नै custom AI features बनाउन सकिन्छ। सबैभन्दा महत्त्वपूर्ण कुरा भनेको राम्रो prompt लेख्ने र API key सुरक्षित राख्ने हो। सुरु गर्न सजिलो छ — VS Code डाउनलोड गर्नुहोस्, Extension install गर्नुहोस्, API Key सेट गर्नुहोस्, र AI लाई आफ्नो coding workflow मा pair-programmer जस्तै प्रयोग गर्न सुरु गर्नुहोस्।</p>]]></content><author><name>Anish Bhattarai</name></author><summary type="html"><![CDATA[AI अब coding मात्र होइन, software development workflow को अनिवार्य हिस्सा बन्दै गएको छ। OpenAI को ChatGPT, Anthropic को Claude, र Deepseek जस्ता LLM (Large Language Models) ले डेभलपरको प्रोडक्टिभिटी कयौ गुणा बढाइरहेका छन्। यसको प्रयोग शुरु गरी नसकेकाहरुको मनमा प्रश्न उठ्न सक्छ VS Code मा यी AI कसरी जोड्ने? Subscription भन्दा API किन सस्तो हुन्छ? आफ्नो प्रोजेक्ट वा working directory भित्र कसरी integrate गर्ने?]]></summary></entry><entry><title type="html">सोसल मिडिया ब्यान रोक्ने उपाया</title><link href="https://www.enepal.net.np//2025/09/13/how-to-break-social-media-ban.html" rel="alternate" type="text/html" title="सोसल मिडिया ब्यान रोक्ने उपाया" /><published>2025-09-13T02:23:12+00:00</published><updated>2025-09-13T02:23:12+00:00</updated><id>https://www.enepal.net.np//2025/09/13/how-to-break-social-media-ban</id><content type="html" xml:base="https://www.enepal.net.np//2025/09/13/how-to-break-social-media-ban.html"><![CDATA[<h1 id="नेपालमा-सोशल-मिडिया-ब्यान-कसरी-पत्ता-लगाउने-कि-कुन-किसिमको-ब्लक-हो">नेपालमा सोशल मिडिया ब्यान: कसरी पत्ता लगाउने कि कुन किसिमको ब्लक हो?</h1>

<p>नेपालमा हालै फेसबुक, युट्युब, इन्स्टाग्राम, व्हाट्सएप जस्ता धेरै सोशल मिडिया प्लेटफर्महरूलाई DNS र IP ब्लक गरेर रोक लगाइएको छ। धेरै
प्रयोगकर्ताहरूलाई प्रश्न हुन्छ</p>

<hr />
<p><strong>यो DNS ब्लक हो कि IP ब्लक? र कसरी पत्ता लगाउने?</strong><br />
यस ब्लगमा हामीले टर्मिनल कमाण्ड प्रयोग गरेर सजिलै जाँच गर्ने तरिका सिक्नेछौं।</p>

<hr />

<h2 id="१️⃣-dns-ब्लक-जाँच-गर्ने">१️⃣ DNS ब्लक जाँच गर्ने</h2>

<p>सबैभन्दा पहिले जाँच गर्नुपर्ने कुरा भनेको तपाईंको ISP ले DNS ब्लक गरेको
छ कि छैन।</p>

<h3 id="कमाण्ड">कमाण्ड:</h3>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>nslookup facebook.com
</code></pre></div></div>

<p>वा</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>dig facebook.com
</code></pre></div></div>

<h3 id="परिणाम-बुझ्ने-तरिका">परिणाम बुझ्ने तरिका:</h3>

<ul>
  <li>✅ <strong>सामान्य रिजल्ट:</strong> valid IP एड्रेस देखिन्छ भने DNS ब्लक छैन।\</li>
  <li>❌ <strong>SERVFAIL / NXDOMAIN:</strong> DNS स्तरमै ब्लक गरिएको छ।\</li>
  <li>⚠ <strong>असामान्य IP (जस्तै १०.x.x.x):</strong> तपाईंको ISP ले DNS हाइज्याक गरेर
ब्लक पेज देखाइरहेको छ।</li>
</ul>

<hr />

<h2 id="२️⃣-वैकल्पिक-dns-प्रयोग-गरेर-जाँच">२️⃣ वैकल्पिक DNS प्रयोग गरेर जाँच</h2>

<p>यदि DNS ब्लक छ भने, Google वा Cloudflare DNS प्रयोग गरेर जाँच गर्न
सकिन्छ:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>dig @8.8.8.8 facebook.com
</code></pre></div></div>

<ul>
  <li>यदि यो काम गर्छ भने, तपाईंको ISP को DNS मात्र ब्लक गरिएको हो र तपाईं
DNS परिवर्तन गरेर समस्या समाधान गर्न सक्नुहुन्छ।</li>
</ul>

<hr />

<h2 id="३️⃣-ip-लेभल-ब्लक-जाँच-गर्ने">३️⃣ IP लेभल ब्लक जाँच गर्ने</h2>

<p>यदि DNS काम गरे पनि साइट खुल्दैन भने यो IP ब्लक हुन सक्छ।</p>

<p>पहिला वैध IP पत्ता लगाउनुहोस्:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>dig @1.1.1.1 facebook.com
</code></pre></div></div>

<p>त्यसपछि पिङ वा कनेक्शन टेस्ट गर्नुहोस्:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ping 31.13.xx.xx
</code></pre></div></div>

<p>वा</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>curl <span class="nt">-vk</span> https://31.13.xx.xx
</code></pre></div></div>

<ul>
  <li>✅ <strong>Ping/Connection सफल:</strong> DNS मात्र ब्लक।\</li>
  <li>❌ <strong>Ping असफल:</strong> IP लेभल ब्लक गरिएको छ।</li>
</ul>

<hr />

<h2 id="४️⃣-sni-फिल्टर-जाँच-गर्ने-उन्नत">४️⃣ SNI फिल्टर जाँच गर्ने (उन्नत)</h2>

<p>यदि IP काम गर्छ तर डोमेन प्रयोग गर्दा मात्र ब्लक हुन्छ भने SNI फिल्टर
हुन सक्छ।</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>curl <span class="nt">-vk</span> <span class="nt">--resolve</span> facebook.com:443:31.13.xx.xx https://facebook.com/
</code></pre></div></div>

<ul>
  <li>यदि यो काम गर्छ भने DNS र IP ठीक छ, तर डोमेन नाम फिल्टर गरिएको छ।</li>
</ul>

<hr />

<h2 id="५️⃣-vpn-प्रयोग-गरेर-अन्तिम-परीक्षण">५️⃣ VPN प्रयोग गरेर अन्तिम परीक्षण</h2>

<p>VPN प्रयोग गर्दा सबै वेबसाइट काम गर्छ भने <strong>यो ब्लक स्थानीय ISP/सरकारको
स्तरमा मात्र छ</strong> भन्ने निश्चित हुन्छ।</p>

<hr />

<h2 id="-निष्कर्ष">🔑 निष्कर्ष</h2>

<hr />
<p>ब्लक प्रकार             कसरी पत्ता लगाउने              समाधान
  ———————– —————————— —————–
  <strong>DNS ब्लक</strong>            <code class="language-plaintext highlighter-rouge">dig</code> वा <code class="language-plaintext highlighter-rouge">nslookup</code> बाट IP     DNS परिवर्तन, DoH
                          नआउने                          प्रयोग</p>

<p><strong>IP ब्लक</strong>             Ping/Connection असफल           VPN, Tor</p>

<p><strong>SNI फिल्टर</strong>          <code class="language-plaintext highlighter-rouge">curl --resolve</code> सफल           ECH, VPN</p>

<p><strong>DPI / गहिरो फिल्टर</strong>  VPN पनि ब्लक                   Obfuscated VPN,
                                                         Tor bridges
  ————————————————————————</p>

<hr />

<p>यसरी तपाईंले आफैं टर्मिनल कमाण्ड प्रयोग गरेर कुन किसिमको ब्लक हो पत्ता
लगाउन सक्नुहुन्छ र उपयुक्त उपाय अपनाउन सक्नुहुन्छ।<br />
यो जानकारी नेटवर्किङ सिक्न र इन्टरनेट स्वतन्त्रता बुझ्नका लागि उपयोगी
हुन्छ।</p>]]></content><author><name>Anish Bhattarai</name></author><summary type="html"><![CDATA[नेपालमा सोशल मिडिया ब्यान: कसरी पत्ता लगाउने कि कुन किसिमको ब्लक हो?]]></summary></entry><entry><title type="html">नेपालमा सोसल मिडिया प्रतिबन्ध कस्तो हो भन्ने पत्ता लगाउने उपाया</title><link href="https://www.enepal.net.np//2025/09/06/how-to-breka-social-media-ban-nepal.html" rel="alternate" type="text/html" title="नेपालमा सोसल मिडिया प्रतिबन्ध कस्तो हो भन्ने पत्ता लगाउने उपाया" /><published>2025-09-06T03:24:12+00:00</published><updated>2025-09-06T03:24:12+00:00</updated><id>https://www.enepal.net.np//2025/09/06/how-to-breka-social-media-ban-nepal</id><content type="html" xml:base="https://www.enepal.net.np//2025/09/06/how-to-breka-social-media-ban-nepal.html"><![CDATA[<p>हाल नेपालमा <a href="https://www.facebook.com">फेसबुक</a>, <a href="https://www.youtube.com">युट्युब</a>, <a href="https://www.instagram.com">इन्स्टाग्राम</a>, <a href="https://www.whatsapp.com">व्हाट्सएप</a> जस्ता धेरै सामाजिक मिडिया साइटहरू <strong>बन्द</strong> गरिएको छ।</p>

<p><a href="https://www.facebook.com">फेसबुक</a> र <a href="https://www.messenger.com">फेसबुक मेसेंजर</a> जस्ता प्लेटफर्महरूमा पहुँच बन्द हुनुको मतलब हो कि सिधा आफ्नो प्रोफाइल हेर्न वा च्याट गर्न सम्भव छैन। यस्तै, <a href="https://www.instagram.com">इन्स्टाग्राम</a> मा फोटो र भिडियो हेर्न, <a href="https://www.youtube.com">युट्युब</a> मा भिडियो हेर्न वा अपलोड गर्न र <a href="https://www.whatsapp.com">व्हाट्सएप</a> मा सन्देश पठाउन पनि अब सामान्य तरिकाले पहुँच छैन।</p>

<p>नेपालमा अन्य ब्लक भएका साइटहरूमा <a href="https://www.x.com">X (पहिलेको ट्विटर)</a>, <a href="https://www.linkedin.com">लिंक्डइन</a>, <a href="https://www.snapchat.com">स्न्यापच्याट</a>, <a href="https://www.reddit.com">रेडिट</a>, <a href="https://discord.com">डिस्कोर्ड</a>, <a href="https://www.pinterest.com">पिनटेरेस्ट</a>, <a href="https://signal.org">सिग्नल</a>, <a href="https://www.instagram.com/threads/">थ्रेड्स</a>, <a href="https://www.wechat.com">वीच्याट</a>, <a href="https://www.quora.com">क्वोरा</a>, <a href="https://www.tumblr.com">टम्बलर</a>, <a href="https://www.joinclubhouse.com">क्लबहाउस</a>, <a href="https://mastodon.social">मास्टोडन</a>, <a href="https://rumble.com">रम्बल</a>, <a href="https://mewe.com">मिवे</a>, <a href="https://vk.com">भिके</a>, <a href="https://line.me">लाइन</a>, <a href="https://imo.im">आइएमओ</a>, <a href="https://zalo.me">जालो</a>, <a href="https://www.soulapp.cn">सोल</a>, र <a href="https://www.hamropatro.com">हाम्रो पात्रो</a> पनि पर्दछन्।</p>

<blockquote>
  <p>नेपाल सरकारले हालै लागू गरेको सामाजिक मिडिया प्लेटफर्महरूको प्रतिबन्धको मुख्य कारण भनेको स्थानीय दर्ता प्रक्रियामा पालना नगर्नु हो। सरकारले दर्ता प्रकृया पुरा गर्ने बित्तिकै माथि उल्लेखति वेबसाईटहरुको प्रतिबन्ध खोल्ने भनेको छ ।</p>

  <h4 id="नेपाल-सरकारले-लागू-गरेको-प्रतिबन्धका-मुख्य-आधारहरू">नेपाल सरकारले लागू गरेको प्रतिबन्धका मुख्य आधारहरू:</h4>

  <p><strong>स्थानीय दर्ता र प्रतिनिधि नियुक्ति:</strong> नेपाल सरकारले विदेशी सामाजिक मिडिया प्लेटफर्महरूलाई स्थानीय कार्यालय खोल्न र एक स्थानीय प्रतिनिधि नियुक्त गर्न निर्देशन दिएको थियो। यसमा दर्ता प्रक्रिया, प्रयोगकर्ता गुनासो व्यवस्थापन, र स्व-नियमन जस्ता आवश्यकताहरू समावेश छन्। यसलाई सरल भाषामा भन्दा तपाईलाई फेसबुकबाट कसैले दुख दिई रहेको छ भने त्यसलाई बन्द गर्ने ठाँउ छैन । नेपाल प्रहरीको साईबर ब्युरोमा जानु पर्दछ । साईबर ब्युरोले पनि लामो प्रकृया पुरा गरेर मात्र त्यसमा कारबाही गर्न सक्छ । सरकाले भनेको चाँही त्यस्तो केही परि आएमा गुनासो सुन्नको लागि एक जना (उनिहरुको) प्रतिनिधी राख भनेको हो ।</p>

  <p><strong>नियमितता र कानुनी दायित्व:</strong> सरकारले सामाजिक मिडिया प्लेटफर्महरूलाई नेपालका कानुनी दायित्वहरू पूरा गर्न निर्देशन दिएको थियो। यसमा सामग्री निगरानी, प्रयोगकर्ता सुरक्षा, र स्थानीय नियमहरूको पालन समावेश छ।</p>

  <p><strong>न्यायिक निर्देशन:</strong> नेपालका सर्वोच्च अदालतले सामाजिक मिडिया प्लेटफर्महरूको दर्ता प्रक्रिया पूरा नगरेको अवस्थामा प्रतिबन्ध लगाउन सरकारलाई निर्देशन दिएको थियो। यसले कानुनी दायित्व र न्यायिक निगरानीको महत्त्वलाई दर्शाउँछ।</p>
</blockquote>

<p>माथि उल्लेखित वेबसाईटहरू प्रयोग गर्न परेमा सबैभन्दा पहिले तपाईंले आफ्नो <strong>इन्टरनेट सेवा प्रदायक (ISP)</strong> ले ती वेबसाईटहरू <strong>कस्तो प्रकारले ब्लक</strong> गरेको छ भनेर निश्चिन्त गर्नु जरुरी छ।  ब्लकको प्रकार बुझेपछि मात्र तपाईंले सुरक्षित र कानुनी तरिकाले ति साइटहरू खोल्ने उपाय (जस्तै VPN वा प्रोक्सी) अपनाउन सक्नुहुन्छ। यसरी कदम चाल्दा पहुँच पाउन सजिलो हुने मात्र होइन, सम्भावित कानुनी जोखिम पनि कम हुन्छ।</p>

<h4 id="साधरणतय-वेब-साइट-ब्लक-गर्ने-तरिकाहरू">साधरणतय वेब साइट ब्लक गर्ने तरिकाहरू</h4>

<p>१. <strong>DNS ब्लक</strong></p>
<ul>
  <li>सजिलो भाषामा: तपाईंले टर्मिनल / कमाण्ड प्रम्प्ट मा nslookup facebook.com लेख्नुभयो, तर कम्प्युटरले वेबसाइटको ठेगाना (IP) फेला पार्न सक्दैन।</li>
  <li>समाधान: DNS बदल्नुहोस् (जस्तै <a href="https://dns.google/">Google DNS 8.8.8.8</a> वा <a href="https://one.one.one.one/">Cloudflare 1.1.1.1)</a>।</li>
</ul>

<p>२. <strong>IP ब्लक</strong></p>
<ul>
  <li>IP त सही आउँछ, तर इन्टरनेट त्यस IP सँग जडान हुन दिँदैन।</li>
  <li>समाधान: VPN प्रयोग गर्नुहोस्।</li>
</ul>

<p>३. <strong>SNI फिल्टर</strong></p>
<ul>
  <li>IP ठिक छ, तर नाम (facebook.com) प्रयोग गर्दा मात्रै ब्लक।</li>
  <li>समाधान: VPN वा Tor Browser प्रयोग गर्नुहोस्।</li>
</ul>

<p>४. <strong>Deep Packet Inspection (DPI)</strong></p>
<ul>
  <li>यो अलिक गहिरो ब्लक हो, VPN समेत रोक्न सक्छ।</li>
  <li>समाधान: Obfuscated VPN वा Psiphon जस्ता उपकरण प्रयोग गर्नुहोस्।</li>
</ul>

<hr />

<h4 id="dns-ब्लक-जाँच-गर्ने">DNS ब्लक जाँच गर्ने</h4>

<p>तपाईंको ISP ले DNS ब्लक गरेको छ कि छैन भनेर निश्चिन्त गर्नको लागी लिनक्स / म्याक अपरेटिङ्ग सिस्टमम टर्मिनल वा विन्डोजको कमाण्ड प्रम्प्टमा तल दिएको कमाण्ड प्रयोग गर्नु पर्दछ</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>nslookup facebook.com
</code></pre></div></div>

<p>वा</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>dig facebook.com
</code></pre></div></div>

<p>यसो गर्दा valid IP एड्रेस देखिन्छ यसको मतलब DNS ब्लक छैन भन्ने हो । SERVFAIL / NXDOMAIN: आएमा DNS स्तरमै ब्लक गरिएको छ। भन्ने हो असामान्य IP (जस्तै १०.x.x.x): तपाईंको ISP ले DNS हाइज्याक गरेर ब्लक पेज देखाइरहेको छ भन्ने बुझ्न सकिन्छ ।</p>

<hr />

<h4 id="वैकल्पिक-dns-प्रयोग-गरेर-जाँच">वैकल्पिक DNS प्रयोग गरेर जाँच</h4>

<p>यदि DNS ब्लक छ भन्ने कन्फर्म गर्नको लागी , Google (8.8.8.8) वा Cloudflare (1.1.1.1) DNS प्रयोग गरेर जाँच गर्न सकिन्छ:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>dig @8.8.8.8 facebook.com
</code></pre></div></div>

<ul>
  <li>यदि यो कमाण्डले काम गर्छ भने, तपाईंको ISP को DNS मात्र ब्लक गरिएको हो र तपाईं DNS परिवर्तन गरेर समस्या समाधान गर्न सक्नुहुन्छ।</li>
</ul>

<hr />

<h4 id="ip-लेभल-ब्लक-जाँच-गर्ने">IP लेभल ब्लक जाँच गर्ने</h4>

<p>यदि DNS काम गरे पनि साइट खुल्दैन भने यो IP ब्लक हुन सक्छ। पहिला कुनै पनि वेबसाईटको IP पत्ता लगाउनुहोस्:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>dig @1.1.1.1 facebook.com
</code></pre></div></div>

<p>त्यसपछि त्यस आईपि एड्रेसलाई पिङ वा कनेक्शन टेस्ट गर्नुहोस्:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ping 31.13.xx.xx
</code></pre></div></div>

<p>वा</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>curl <span class="nt">-vk</span> https://31.13.xx.xx
</code></pre></div></div>

<p>यसो गर्दा Ping/Connection सफल भएमा DNS मात्र ब्लक गरिएको छ भनेर कन्फर्म गर्न सकिन्छ भने Ping असफलमा IP लेभल ब्लक गरिएको छ। भनेर निश्चिन्त गर्न सकिन्छ ।</p>

<hr />

<h4 id="sni-फिल्टर-जाँच-गर्ने-उन्नत">SNI फिल्टर जाँच गर्ने (उन्नत)</h4>

<p>यदि IP काम गर्छ तर डोमेन प्रयोग गर्दा मात्र ब्लक हुन्छ भने SNI फिल्टर हुन सक्छ।</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>curl <span class="nt">-vk</span> <span class="nt">--resolve</span> facebook.com:443:31.13.xx.xx https://facebook.com/
</code></pre></div></div>

<ul>
  <li>यदि यो काम गर्छ भने DNS र IP ठीक छ, तर डोमेन नाम फिल्टर गरिएको छ।</li>
</ul>

<hr />

<h4 id="vpn-प्रयोग-गरेर-अन्तिम-परीक्षण">VPN प्रयोग गरेर अन्तिम परीक्षण</h4>

<p>VPN प्रयोग गर्दा सबै वेबसाइट काम गर्छ भने <strong>यो ब्लक स्थानीय ISP/सरकारको स्तरमा मात्र छ</strong> भन्ने निश्चित हुन्छ।</p>]]></content><author><name>Anish Bhattarai</name></author><summary type="html"><![CDATA[हाल नेपालमा फेसबुक, युट्युब, इन्स्टाग्राम, व्हाट्सएप जस्ता धेरै सामाजिक मिडिया साइटहरू बन्द गरिएको छ।]]></summary></entry><entry><title type="html">होम राउटरबाट ईन्टरनेट एक्सेस कन्ट्रोल गर्ने तरिका (Nepal Telecom प्रयोगकर्ताहरूका लागि)</title><link href="https://www.enepal.net.np//tips/2025/08/30/controlling-internet-access-through-home-router.html" rel="alternate" type="text/html" title="होम राउटरबाट ईन्टरनेट एक्सेस कन्ट्रोल गर्ने तरिका (Nepal Telecom प्रयोगकर्ताहरूका लागि)" /><published>2025-08-30T02:45:00+00:00</published><updated>2025-08-30T02:45:00+00:00</updated><id>https://www.enepal.net.np//tips/2025/08/30/controlling-internet-access-through-home-router</id><content type="html" xml:base="https://www.enepal.net.np//tips/2025/08/30/controlling-internet-access-through-home-router.html"><![CDATA[<p>आजको समयमा इन्टरनेट घरघरमा आवश्यक भइसकेको छ। तर, कहिलेकाहीँ घरका बच्चाहरूले जुनसुकै बेला इन्टरनेट प्रयोग गर्दा पढाइमा ध्यान दिन सक्दैनन् वा राति ढिलोसम्म मोबाइल चलाउँछन्। यस्ता समस्यामा <strong>Parental Control</strong> राउटरमै उपलब्ध समाधान हो। यस लेखमा हामीले नेपाल टेलिकमको राउटर प्रयोग गरेर <strong>Parental Control</strong>, <strong>Time Restriction</strong>, <strong>MAC Filter</strong>, र <strong>URL Filter</strong> कसरी प्रयोग गर्ने भनेर चर्चा गर्ने छौ ।</p>

<hr />
<h2 id="१-राउटरमा-लगइन-गर्ने-तरिका">१. राउटरमा लगइन गर्ने तरिका</h2>
<p>नेपाल टेलिकमको अप्टिकल फाइबर प्रयोगकर्ताहरूले आफ्नो राउटरमा लगइन गर्न <a href="http://192.168.1.1">http://192.168.1.1/login.html</a> प्रयोग गर्नुपर्छ।</p>

<ul>
  <li><strong>डिफल्ट लगइन:</strong>
    <ul>
      <li><strong>Username:</strong> <code class="language-plaintext highlighter-rouge">user</code></li>
      <li><strong>Password:</strong> <code class="language-plaintext highlighter-rouge">user</code></li>
    </ul>
  </li>
</ul>

<p>यसले केवल बेसिक सेटिङहरू मात्र देखाउँछ। यद्पी यसै लगईन बाट पनि म्याक फिल्टर गर्न सकिन्छ । तर यसो गर्दा जति खेर फिल्टर ईनेबल डिसेबल गर्न चाहेको हो त्यसै बेला गर्न पर्छ ।  तर, यदि तपाईंलाई <strong>Parental Control</strong> वा <strong>URL Filter</strong> जस्ता एडभान्स सेटिङ प्रयोग गर्न मन छ भने <strong>support</strong> भन्ने युजरलगईन प्रयोग गर्नुपर्छ र लगइन गरेपछि तपाईंलाई विस्तृत मेनु र एडभान्स सेटिङहरू देखिन्छन्।</p>

<hr />
<h2 id="२-router-adminsupport-password-निकाल्ने-तरीका">२. Router Admin/Support Password निकाल्ने तरीका</h2>

<p>यदि तपाईं एडभान्स सेटिङ प्रयोग गर्न चाहनुहुन्छ भने तलका स्टेपहरू पालना गर्नुहोस्:</p>

<ol>
  <li>
    <p>Default user/user पासवर्ड प्रयोग गरेर राउटरमा लगइन गर्नुहोस्:<br />
<a href="http://192.168.1.1/login.html">http://192.168.1.1/login.html</a></p>
  </li>
  <li>
    <p>लगइन गरेपछि हालको सेटिङ्स डम्प गर्नुहोस्:<br />
<a href="http://192.168.1.1/backupsettings.conf">http://192.168.1.1/backupsettings.conf</a></p>
  </li>
  <li>
    <p>डाउनलोड भएको फाइल <code class="language-plaintext highlighter-rouge">backupsettings.conf</code> खोल्नुहोस्।<br />
<em>(साधारणतया यो तपाईंको Downloads फोल्डरमा हुनेछ)</em></p>
  </li>
  <li>फाइलमा <code class="language-plaintext highlighter-rouge">&lt;AdminPassword&gt;</code> र <code class="language-plaintext highlighter-rouge">&lt;SupportPassword&gt;</code> खोज्नुहोस्।
    <ul>
      <li>हामीलाई चाहिएको <strong>support password</strong> हो जुन <code class="language-plaintext highlighter-rouge">&lt;SupportPassword&gt;</code> ट्यागको बीचमा हुन्छ।</li>
      <li>यो base64 एन्कोडेड हुनेछ।</li>
    </ul>

    <p>उदाहरण स्वरूप फाइलको सान्दर्भिक भाग यस्तो देखिन सक्छ:</p>
    <div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;X_BROADCOM_COM_LoginCfg&gt;</span>
    <span class="nt">&lt;AdminPassword&gt;</span>YURtOEglTWRBAA==<span class="nt">&lt;/AdminPassword&gt;</span>
    <span class="nt">&lt;SupportPassword&gt;</span>bkU3akElNW0A<span class="nt">&lt;/SupportPassword&gt;</span>
<span class="nt">&lt;/X_BROADCOM_COM_LoginCfg&gt;</span>
</code></pre></div>    </div>
  </li>
  <li>स्ट्रिङ decode गर्न:
    <ul>
      <li>https://www.base64decode.or मा जानुहोस्।</li>
      <li>
        <SupportPassword> ट्याग भित्रको स्ट्रिङ पेस्ट गरेर decode गर्नुहोस्।
</SupportPassword>
      </li>
      <li>decode गर्दा अन्त्यमा “�” जस्तो character आएमा हटाउनुहोस्, यो केवल garbage trailing char हो।</li>
      <li>decode गरेको पासवर्ड प्रयोग गरेर लगइन गर्नुहोस्: suport/${password you got}</li>
    </ul>
  </li>
</ol>

<hr />

<h2 id="३--parental-control-र-time-restriction-सेटअप">३ . Parental Control र Time Restriction सेटअप</h2>
<p>Support लगइन गरेपछि मेनुमा <strong>Advance Setup → Security → Time Restriction</strong> मा जानु पर्दछ ।<br />
यहाँ तपाईंले:</p>
<ul>
  <li>कुन डिभाइस (MAC Address को आधारमा) इन्टरनेट प्रयोग गर्न दिने वा रोक्ने सेट गर्न सक्नुहुन्छ।</li>
  <li>कुन दिन र कुन समयसम्म इन्टरनेट चल्ने भनेर तोक्न सक्नुहुन्छ।</li>
</ul>

<h3 id="उदाहरण">उदाहरण:</h3>
<p>यदि तपाईं चाहनुहुन्छ कि तपाईंको बच्चाको ट्याब्लेट राति १० बजेपछि इन्टरनेट नचलोस् भने:</p>

<ol>
  <li>MAC Address भेरिफाइ गर्नुहोस्।</li>
  <li>Time Restriction मा नयाँ नियम (Rule) बनाउनुहोस्।</li>
  <li>ब्लक गर्ने समय सेट गर्नुहोस् (उदाहरण: <code class="language-plaintext highlighter-rouge">10:00 PM – 6:00 AM</code>)।</li>
  <li><strong>Save</strong> गर्नुहोस्।<br />
अब त्यो डिभाइसमा तोकिएको समयमा इन्टरनेट स्वतः बन्द हुन्छ।</li>
</ol>

<hr />

<h2 id="४-mac-filtering-प्रयोग-गरेर-डिभाइस-कन्ट्रोल-गर्नु">४. MAC Filtering प्रयोग गरेर डिभाइस कन्ट्रोल गर्नु</h2>

<p><strong>MAC Filtering</strong> भन्नाले तपाईंको राउटरमा कनेक्सन भएको प्रत्येक डिभाइसलाई <strong>MAC Address</strong> को आधारमा इन्टरनेट अनुमति दिने वा रोक्ने सुविधा हो।</p>

<ul>
  <li><strong>Allow List Mode:</strong> तपाईंले मात्र अनुमति दिएको डिभाइसमा इन्टरनेट चल्छ।</li>
  <li><strong>Deny List Mode:</strong> तपाईंले रोक्नु चाहेको डिभाइसमा मात्र इन्टरनेट बन्द हुन्छ।</li>
</ul>

<p>यो फिचर विशेष गरी तब प्रयोग हुन्छ जब तपाईं चाहनुहुन्छ कि तपाईंको मोबाइल बाहेक अरू कुनै डिभाइसले इन्टरनेट प्रयोग गर्न नपाओस्।</p>

<hr />

<h2 id="५-ip-filtering">५. IP Filtering</h2>
<p><strong>IP Filtering</strong> ले तपाईंलाई कुनै डिभाइसलाई <strong>Static IP</strong> असाइन गरेर त्यसको इन्टरनेट एक्सेस नियन्त्रण गर्न दिन्छ।</p>

<ul>
  <li>तपाईंले नियम बनाउनु भयो भने, त्यो नियम अनुसार मात्र IP पाउने डिभाइसले इन्टरनेट प्रयोग गर्न सक्छ।</li>
  <li>यो फिचर विशेष गरी कार्यालय वा होम–अफिस नेटवर्कमा बढी उपयोग हुन्छ।</li>
</ul>

<hr />

<h2 id="६-url-filter-प्रयोग-गरेर-वेबसाइट-ब्लक-गर्ने">६. URL Filter प्रयोग गरेर वेबसाइट ब्लक गर्ने</h2>
<p>यदि तपाईंलाई लाग्छ कि केही वेबसाइटहरू (जस्तै TikTok, Game Site, आदि) बच्चाहरूका लागि उपयुक्त छैनन् भने, <strong>URL Filter</strong> प्रयोग गरेर तिनीहरूलाई ब्लक गर्न सक्नुहुन्छ।</p>

<ol>
  <li><strong>Security → URL Filter</strong> मा जानुहोस्।</li>
  <li>नयाँ नियम बनाउनुहोस् र ब्लक गर्न चाहेको वेबसाइटको URL लेख्नुहोस्।</li>
  <li><strong>Save</strong> गर्नुहोस्।</li>
</ol>

<p>अब त्यो वेबसाइट तपाईंको घरको नेटवर्कमा खोल्न मिल्दैन।</p>

<hr />

<h2 id="७-फाइबर-टु-द-होम-ftth--नेपाल-टेलिकम">७. फाइबर टु द होम (FTTH) – नेपाल टेलिकम</h2>

<p>नेपाल टेलिकमको <strong>फाइबर टु द होम (FTTH)</strong> सेवामा परम्परागत तामा नेटवर्कको सट्टा ग्राहकको परिसरसम्म अप्टिकल फाइबर पुर्याइन्छ। यस सेवाबाट एउटै फाइबरमार्फत् ब्रोडब्यान्ड इन्टरनेट, भ्वाइस सेवा र टेलिभिजन सेवा जस्ता सुविधा उपलब्ध हुन्छन्। ग्राहकले आफ्नो क्षेत्रमा सेवा उपलब्ध छ कि छैन भन्ने जानकारी नजिकैको टेलिकम कार्यालयमा सम्पर्क गरेर प्राप्त गर्न सक्नेछन्। सेवा लिन इच्छुक व्यक्तिहरूले FTTH का लागि सेवा दर्ता फारम भर्नु पर्छ, जुन <a href="https://www.ntc.net.np/downloads">नेपाल टेलिकमको वेबसाइट</a> बाट डाउनलोड गर्न सकिन्छ। त्यसपछि उपयुक्त प्याकेज चयन गरी नजिकैको टेलिकम कार्यालयमा फारम बुझाउनुपर्छ।</p>

<p>नेपाल टेलिकमले देशका विभिन्न क्षेत्रहरूमा FTTH सेवा वितरण गरिरहेको छ र सेवा सम्बन्धी कुनै गुनासो वा समस्या भएमा <strong>१९८</strong> मा डायल गरेर सम्पर्क गर्न सकिन्छ। यस प्रकार, FTTH सेवाले घर वा अफिसमा उच्च गति इन्टरनेट र अन्य डिजिटल सुविधाहरू सहज र स्थिर तरिकाले उपलब्ध गराउँछ, जसले डिजिटल जीवनलाई अझ प्रभावकारी र सुविधाजनक बनाउँछ।</p>]]></content><author><name>Anish Bhattarai</name></author><category term="tips" /><summary type="html"><![CDATA[आजको समयमा इन्टरनेट घरघरमा आवश्यक भइसकेको छ। तर, कहिलेकाहीँ घरका बच्चाहरूले जुनसुकै बेला इन्टरनेट प्रयोग गर्दा पढाइमा ध्यान दिन सक्दैनन् वा राति ढिलोसम्म मोबाइल चलाउँछन्। यस्ता समस्यामा Parental Control राउटरमै उपलब्ध समाधान हो। यस लेखमा हामीले नेपाल टेलिकमको राउटर प्रयोग गरेर Parental Control, Time Restriction, MAC Filter, र URL Filter कसरी प्रयोग गर्ने भनेर चर्चा गर्ने छौ ।]]></summary></entry><entry><title type="html">Python लाईब्रेरी Pandas ट्युटोरियल</title><link href="https://www.enepal.net.np//2025/02/13/pandas-tutorial.html" rel="alternate" type="text/html" title="Python लाईब्रेरी Pandas ट्युटोरियल" /><published>2025-02-13T03:00:12+00:00</published><updated>2025-02-13T03:00:12+00:00</updated><id>https://www.enepal.net.np//2025/02/13/pandas-tutorial</id><content type="html" xml:base="https://www.enepal.net.np//2025/02/13/pandas-tutorial.html"><![CDATA[<p>Pandas भनेको Python मा आधारित एक ओपन सोर्स सफ्टवेयर लाइब्रेरी हो । यसले प्रयोगकर्तालाई spreadsheet मा जस्तै छिटो डेटा लोड गर्न, आवश्यकता अनुसार भिन्न ढाँचामा डेटालाई परिवर्तन गर्न, २ वा २ भन्दा बढी डेटासेटहरुलाई मर्ज गर्ने लगायतका कामहरू गर्नको लागी सहजता प्रदान गर्दछ  । यसले डेटा क्लिनिङ्ग र structured डेटाका ढाँचाहरू जस्तै tables, matrices, र time-series सँग काम गर्न सजिलो बनाउँछ । यो Python का अरु scientific libraries सँग पनि राम्रोसँग काम गर्छ ।</p>

<hr />

<h2 id="१-pandas-इन्स्टल-गर्ने-र-सेटअप-गर्ने">१. pandas इन्स्टल गर्ने र सेटअप गर्ने</h2>
<p>सबैभन्दा पहिले, तपाईंको कम्प्युटरमा pandas लाइब्रेरी <strong>इन्स्टल</strong> गर्नुपर्छ।</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">pip</span> <span class="n">install</span> <span class="n">pandas</span>
<span class="kn">import</span> <span class="n">pandas</span> <span class="k">as</span> <span class="n">pd</span>
</code></pre></div></div>

<p><code class="language-plaintext highlighter-rouge">pd</code> <strong>pandas को संक्षिप्त नाम</strong> हो, जुन प्रायः प्रयोग गरिन्छ।</p>

<hr />

<h2 id="२-pandas-को-मुख्य-डाटा-संरचना-data-structures">२. pandas को मुख्य डाटा संरचना (Data Structures)</h2>
<p>प्यान्डासमा Series र DataFrame दुई प्रमुख डेटा स्ट्रक्चरहरु हुन्छन्। वान डाईमेन्सनल डेटा संरचनालाई सिरिज भनिन्छ भने मल्टीडाईमेन्सनल डेटा संरचनालाई डेटाफ्रेम भनिन्छ । वान डाईमेन्सनल डेटा संरचना लिस्ट जस्तो देखिन्छ भने डेटाफ्रेम दुई डाईमेन्सनल संरचना हुन्छ।</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="n">pandas</span> <span class="k">as</span> <span class="n">pd</span>

<span class="n">data</span> <span class="o">=</span> <span class="p">[</span><span class="mi">10</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="mi">30</span><span class="p">,</span> <span class="mi">40</span><span class="p">]</span>
<span class="n">series</span> <span class="o">=</span> <span class="n">pd</span><span class="p">.</span><span class="nc">Series</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
<span class="nf">print</span><span class="p">(</span><span class="n">series</span><span class="p">)</span>
</code></pre></div></div>
<p>📌 <strong>आउटपुट:</strong></p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>0    10
1    20
2    30
3    40
dtype: int64
</code></pre></div></div>
<p>🔹 Series मा Index हुन्छ, जुन स्वतः 0,1,2,3… मा सेट हुन्छ।
—</p>

<h3 id="-dataframe-बनाउने-तरिका">🟢 DataFrame बनाउने तरिका</h3>
<p>DataFrame त्यस्तो संरचना खालको संरचना हो जसमा रो (Rows) र कोलम (Columns) हुने गर्दछ ।</p>
<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">data</span> <span class="o">=</span> <span class="p">{</span>
    <span class="sh">"</span><span class="s">नाम</span><span class="sh">"</span><span class="p">:</span> <span class="p">[</span><span class="sh">"</span><span class="s">राम</span><span class="sh">"</span><span class="p">,</span> <span class="sh">"</span><span class="s">सीता</span><span class="sh">"</span><span class="p">,</span> <span class="sh">"</span><span class="s">गिता</span><span class="sh">"</span><span class="p">,</span> <span class="sh">"</span><span class="s">श्याम</span><span class="sh">"</span><span class="p">],</span>
    <span class="sh">"</span><span class="s">उमेर</span><span class="sh">"</span><span class="p">:</span> <span class="p">[</span><span class="mi">25</span><span class="p">,</span> <span class="mi">22</span><span class="p">,</span> <span class="mi">28</span><span class="p">,</span> <span class="mi">30</span><span class="p">],</span>
    <span class="sh">"</span><span class="s">शहर</span><span class="sh">"</span><span class="p">:</span> <span class="p">[</span><span class="sh">"</span><span class="s">काठमाडौं</span><span class="sh">"</span><span class="p">,</span> <span class="sh">"</span><span class="s">पोखरा</span><span class="sh">"</span><span class="p">,</span> <span class="sh">"</span><span class="s">ललितपुर</span><span class="sh">"</span><span class="p">,</span> <span class="sh">"</span><span class="s">बुटवल</span><span class="sh">"</span><span class="p">]</span>
<span class="p">}</span>
<span class="n">df</span> <span class="o">=</span> <span class="n">pd</span><span class="p">.</span><span class="nc">DataFrame</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
<span class="nf">print</span><span class="p">(</span><span class="n">df</span><span class="p">)</span>
</code></pre></div></div>
<p>📌 <strong>आउटपुट:</strong></p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>    नाम  उमेर     शहर
0   राम    25  काठमाडौं
1  सीता    22   पोखरा
2  गिता    28  ललितपुर
3  श्याम    30   बुटवल
</code></pre></div></div>

<hr />

<h2 id="३-dataframe-को-बेसिक-अपरेशनहरू">३. DataFrame को बेसिक अपरेशनहरू</h2>

<h3 id="-पहिलो-पाँच-पंक्ति-हेर्न-head">🔹 पहिलो पाँच पंक्ति हेर्न (head)</h3>
<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nf">print</span><span class="p">(</span><span class="n">df</span><span class="p">.</span><span class="nf">head</span><span class="p">())</span>

<span class="c1">### 🔹 अन्तिम पाँच row हेर्न (tail)
</span><span class="nf">print</span><span class="p">(</span><span class="n">df</span><span class="p">.</span><span class="nf">tail</span><span class="p">())</span>

<span class="c1">### 🔹 डाटा प्रकार (Data Types) हेर्न
</span><span class="nf">print</span><span class="p">(</span><span class="n">df</span><span class="p">.</span><span class="n">dtypes</span><span class="p">)</span>

<span class="c1">### 🔹 columns हरूको नाम हेर्न
</span><span class="nf">print</span><span class="p">(</span><span class="n">df</span><span class="p">.</span><span class="n">columns</span><span class="p">)</span>

<span class="c1">### 🔹 row संख्या र column संख्या हेर्न
</span><span class="nf">print</span><span class="p">(</span><span class="n">df</span><span class="p">.</span><span class="n">shape</span><span class="p">)</span>
</code></pre></div></div>
<hr />

<h2 id="४-dataframe-बाट-डेटा-सेलेक्सन-selection">४. DataFrame बाट डेटा सेलेक्सन (Selection)</h2>

<h3 id="-कुनै-एक-स्तम्भ-column-चयन-गर्ने">🔹 कुनै एक स्तम्भ (Column) चयन गर्ने</h3>
<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nf">print</span><span class="p">(</span><span class="n">df</span><span class="p">[</span><span class="sh">"</span><span class="s">name</span><span class="sh">"</span><span class="p">])</span>

<span class="c1">### 🔹 विशेष पंक्ति (Row) चयन गर्ने
</span><span class="nf">print</span><span class="p">(</span><span class="n">df</span><span class="p">.</span><span class="n">loc</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>   <span class="c1"># दोस्रो Row
</span><span class="nf">print</span><span class="p">(</span><span class="n">df</span><span class="p">.</span><span class="n">iloc</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span>  <span class="c1"># तेस्रो Row
</span>
<span class="c1">### 🔹 विशेष Row र Column सेलेक्ट गर्ने
</span><span class="nf">print</span><span class="p">(</span><span class="n">df</span><span class="p">.</span><span class="n">loc</span><span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="sh">"</span><span class="s">city</span><span class="sh">"</span><span class="p">])</span>  <span class="c1"># पहिलो व्यक्तिको शहर
</span></code></pre></div></div>
<h1 id="थप">थप</h1>
<p>१.१. Addition (+)
दुई वा बढी संख्याहरूको जोड़ गर्नको लागि प्रयोग गरिन्छ।</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">a</span> <span class="o">=</span> <span class="mi">10</span>
<span class="n">b</span> <span class="o">=</span> <span class="mi">5</span>
<span class="n">result</span> <span class="o">=</span> <span class="n">a</span> <span class="o">+</span> <span class="n">b</span>
<span class="nf">print</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>  <span class="c1"># 15
</span></code></pre></div></div>

<p>१.२. Subtraction (-)
दुई संख्याको घटाउ गर्नको लागि प्रयोग गरिन्छ।</p>
<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">a</span> <span class="o">=</span> <span class="mi">10</span>
<span class="n">b</span> <span class="o">=</span> <span class="mi">5</span>
<span class="n">result</span> <span class="o">=</span> <span class="n">a</span> <span class="o">-</span> <span class="n">b</span>
<span class="nf">print</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>  <span class="c1"># 5
</span></code></pre></div></div>

<p>१.३. Multiplication (*)
दुई संख्याको गुणा गर्नको लागि प्रयोग गरिन्छ।</p>
<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">a</span> <span class="o">=</span> <span class="mi">10</span>
<span class="n">b</span> <span class="o">=</span> <span class="mi">5</span>
<span class="n">result</span> <span class="o">=</span> <span class="n">a</span> <span class="o">*</span> <span class="n">b</span>
<span class="nf">print</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>  <span class="c1"># 50
</span></code></pre></div></div>

<p>१.४. Division (/)
दुई संख्याको भाग गर्ने अपरेटर हो, जसले विभाजनको परिणाम फ्लोटिङ पोइन्ट भ्यालु दिन्छ।</p>
<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">a</span> <span class="o">=</span> <span class="mi">10</span>
<span class="n">b</span> <span class="o">=</span> <span class="mi">5</span>
<span class="n">result</span> <span class="o">=</span> <span class="n">a</span> <span class="o">/</span> <span class="n">b</span>
<span class="nf">print</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>  <span class="c1"># 2.0
</span></code></pre></div></div>

<p>१.५. Floor Division (//)
दुई संख्याको भाग गर्दा केवल पूर्णांक (integer) परिणाम दिने अपरेटर हो।</p>
<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">a</span> <span class="o">=</span> <span class="mi">10</span>
<span class="n">b</span> <span class="o">=</span> <span class="mi">3</span>
<span class="n">result</span> <span class="o">=</span> <span class="n">a</span> <span class="o">//</span> <span class="n">b</span>
<span class="nf">print</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>  <span class="c1"># 3
</span></code></pre></div></div>

<p>१.६. Modulus (%)
यो अपरेटरले दुई संख्याको भागको बाकी निकाल्छ।</p>
<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">a</span> <span class="o">=</span> <span class="mi">10</span>
<span class="n">b</span> <span class="o">=</span> <span class="mi">3</span>
<span class="n">result</span> <span class="o">=</span> <span class="n">a</span> <span class="o">%</span> <span class="n">b</span>
<span class="nf">print</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>  <span class="c1"># 1
</span></code></pre></div></div>

<p>१.७. Exponentiation (**)
यो अपरेटरले दुई संख्याको घात निकाल्छ।</p>
<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">a</span> <span class="o">=</span> <span class="mi">2</span>
<span class="n">b</span> <span class="o">=</span> <span class="mi">3</span>
<span class="n">result</span> <span class="o">=</span> <span class="n">a</span> <span class="o">**</span> <span class="n">b</span>
<span class="nf">print</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>  <span class="c1"># 8
</span></code></pre></div></div>

<p>२. स्ट्रिङ अपरेसनहरू (String Operations)
Python मा स्ट्रिङ पनि एक प्रमुख डाटा प्रकार हो र यसमा केहि महत्वपूर्ण अपरेसनहरू लागू गर्न सकिन्छ।</p>

<p>२.१. Concatenation (+)
स्ट्रिङहरूलाई जोड्नको लागि + अपरेटर प्रयोग गर्न सकिन्छ।</p>
<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">str1</span> <span class="o">=</span> <span class="sh">"</span><span class="s">Hello</span><span class="sh">"</span>
<span class="n">str2</span> <span class="o">=</span> <span class="sh">"</span><span class="s">World</span><span class="sh">"</span>
<span class="n">result</span> <span class="o">=</span> <span class="n">str1</span> <span class="o">+</span> <span class="sh">"</span><span class="s"> </span><span class="sh">"</span> <span class="o">+</span> <span class="n">str2</span>
<span class="nf">print</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>  <span class="c1"># Hello World
</span></code></pre></div></div>

<p>२.२. Repetition (*)
स्ट्रिङलाई पुनः दोहोर्याउनको लागि * अपरेटर प्रयोग गर्न सकिन्छ।</p>
<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">str1</span> <span class="o">=</span> <span class="sh">"</span><span class="s">Hi </span><span class="sh">"</span>
<span class="n">result</span> <span class="o">=</span> <span class="n">str1</span> <span class="o">*</span> <span class="mi">3</span>
<span class="nf">print</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>  <span class="c1"># Hi Hi Hi
</span></code></pre></div></div>

<p>२.३. Slicing
स्ट्रिङको कुनै पनि अंशलाई लिनको लागि slicing प्रयोग गर्न सकिन्छ।</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">str1</span> <span class="o">=</span> <span class="sh">"</span><span class="s">Python</span><span class="sh">"</span>
<span class="n">result</span> <span class="o">=</span> <span class="n">str1</span><span class="p">[</span><span class="mi">1</span><span class="p">:</span><span class="mi">4</span><span class="p">]</span>  <span class="c1"># Extracts "yth"
</span><span class="nf">print</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
</code></pre></div></div>
<p>२.४. Length (len())
स्ट्रिङको लम्बाई (कति अक्षरहरू छन्) पत्ता लगाउन len() फंक्सन प्रयोग गर्न सकिन्छ।</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">str1</span> <span class="o">=</span> <span class="sh">"</span><span class="s">Python</span><span class="sh">"</span>
<span class="n">result</span> <span class="o">=</span> <span class="nf">len</span><span class="p">(</span><span class="n">str1</span><span class="p">)</span>
<span class="nf">print</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>  <span class="c1"># 6
</span></code></pre></div></div>

<p>३. लिस्ट अपरेसनहरू (List Operations)
Python मा लिस्टहरू एक महत्वपूर्ण डाटा संरचना हो जसमा विभिन्न प्रकारका डाटा राख्न सकिन्छ। लिस्टमा केही सामान्य अपरेसनहरू निम्नलिखित छन्।</p>

<p>३.१. लिस्टमा आइटम जोड्नु (Appending)
लिस्टमा नयाँ आइटम थप्नको लागि append() मेथड प्रयोग गर्न सकिन्छ।</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">my_list</span> <span class="o">=</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">]</span>
<span class="n">my_list</span><span class="p">.</span><span class="nf">append</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
<span class="nf">print</span><span class="p">(</span><span class="n">my_list</span><span class="p">)</span>  <span class="c1"># [1, 2, 3, 4]
</span></code></pre></div></div>

<p>३.२. लिस्टबाट आइटम हटाउनु (Removing)
लिस्टबाट आइटम हटाउनको लागि remove() मेथड प्रयोग गर्न सकिन्छ।</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">my_list</span> <span class="o">=</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">]</span>
<span class="n">my_list</span><span class="p">.</span><span class="nf">remove</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span>
<span class="nf">print</span><span class="p">(</span><span class="n">my_list</span><span class="p">)</span>  <span class="c1"># [1, 2, 4]
</span></code></pre></div></div>

<p>३.३. लिस्टको लम्बाई जान्नु (Length of List)
लिस्टको लम्बाई पत्ता लगाउन len() प्रयोग गर्न सकिन्छ।</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">my_list</span> <span class="o">=</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">]</span>
<span class="n">result</span> <span class="o">=</span> <span class="nf">len</span><span class="p">(</span><span class="n">my_list</span><span class="p">)</span>
<span class="nf">print</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>  <span class="c1"># 3
</span></code></pre></div></div>

<p>३.४. लिस्टमा आइटमको स्थान जान्नु (Indexing)
लिस्टमा कुनै आइटमको स्थान जान्नको लागि index() मेथड प्रयोग गर्न सकिन्छ।</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">my_list</span> <span class="o">=</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">]</span>
<span class="n">result</span> <span class="o">=</span> <span class="n">my_list</span><span class="p">.</span><span class="nf">index</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
<span class="nf">print</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>  <span class="c1"># 1
</span></code></pre></div></div>

<p>४. तुलना अपरेसनहरू (Comparison Operations)
Python मा विभिन्न प्रकारका तुलना अपरेसनहरू छन् जसले दुई भेरिएबलहरूको तुलनासम्बन्धी परिणाम दिन्छ। यी अपरेसनहरू Boolean मानहरू (True या False) दिन्छ।</p>

<p>४.१. समानता (==)
दुई मान समान छन् कि छैन भनेर परीक्षण गर्नको लागि == प्रयोग गर्न सकिन्छ।</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">a</span> <span class="o">=</span> <span class="mi">5</span>
<span class="n">b</span> <span class="o">=</span> <span class="mi">5</span>
<span class="n">result</span> <span class="o">=</span> <span class="n">a</span> <span class="o">==</span> <span class="n">b</span>
<span class="nf">print</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>  <span class="c1"># True
</span></code></pre></div></div>

<p>४.२. असमानता (!=)
दुई मान असमान छन् कि छैन भनेर परीक्षण गर्नको लागि != प्रयोग गर्न सकिन्छ।</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">a</span> <span class="o">=</span> <span class="mi">5</span>
<span class="n">b</span> <span class="o">=</span> <span class="mi">3</span>
<span class="n">result</span> <span class="o">=</span> <span class="n">a</span> <span class="o">!=</span> <span class="n">b</span>
<span class="nf">print</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>  <span class="c1"># True
</span></code></pre></div></div>

<p>४.३. ठूलो, सानो, र समकक्ष (&gt; , &lt; , &gt;= , &lt;=)
दुई मानको तुलनात्मक जाँच गर्नको लागि यी अपरेसनहरू प्रयोग गर्न सकिन्छ।</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">a</span> <span class="o">=</span> <span class="mi">5</span>
<span class="n">b</span> <span class="o">=</span> <span class="mi">3</span>
<span class="n">result</span> <span class="o">=</span> <span class="n">a</span> <span class="o">&gt;</span> <span class="n">b</span>
<span class="nf">print</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>  <span class="c1"># True
</span></code></pre></div></div>

<p>५. Logical अपरेसनहरू (Logical Operations)
Logical operations को मद्दतले हामी दुई वा बढी सर्तहरूको बिचमा सम्बन्ध जाँच गर्न सक्छौं।</p>

<p>५.१. AND (and)
यसले दुई सर्त साँचो भए मात्र साँचो परिणाम दिन्छ।</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">a</span> <span class="o">=</span> <span class="bp">True</span>
<span class="n">b</span> <span class="o">=</span> <span class="bp">False</span>
<span class="n">result</span> <span class="o">=</span> <span class="n">a</span> <span class="ow">and</span> <span class="n">b</span>
<span class="nf">print</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>  <span class="c1"># False
</span></code></pre></div></div>

<p>५.२. OR (or)
यसले कुनै एक सर्त साँचो भए मात्र साँचो परिणाम दिन्छ।</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">a</span> <span class="o">=</span> <span class="bp">True</span>
<span class="n">b</span> <span class="o">=</span> <span class="bp">False</span>
<span class="n">result</span> <span class="o">=</span> <span class="n">a</span> <span class="ow">or</span> <span class="n">b</span>
<span class="nf">print</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>  <span class="c1"># True
</span></code></pre></div></div>

<p>५.३. NOT (not)
यसले सर्तको उल्टो परिणाम दिन्छ।</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">a</span> <span class="o">=</span> <span class="bp">True</span>
<span class="n">result</span> <span class="o">=</span> <span class="ow">not</span> <span class="n">a</span>
<span class="nf">print</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>  <span class="c1"># False
</span></code></pre></div></div>
<hr />

<h2 id="५-फिल्टरिंग-filtering--कन्डिसनल-सिलेक्शन">५. फिल्टरिंग (Filtering) – कन्डिसनल सिलेक्शन</h2>
<h3 id="-२५-वर्षभन्दा-बढी-उमेर-भएका-व्यक्तिहरू-छनोट-गर्ने">🔹 २५ वर्षभन्दा बढी उमेर भएका व्यक्तिहरू छनोट गर्ने</h3>
<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nf">print</span><span class="p">(</span><span class="n">df</span><span class="p">[</span><span class="n">df</span><span class="p">[</span><span class="sh">"</span><span class="s">age</span><span class="sh">"</span><span class="p">]</span> <span class="o">&gt;</span> <span class="mi">25</span><span class="p">])</span>
</code></pre></div></div>]]></content><author><name>Anish Bhattarai</name></author><summary type="html"><![CDATA[Pandas भनेको Python मा आधारित एक ओपन सोर्स सफ्टवेयर लाइब्रेरी हो । यसले प्रयोगकर्तालाई spreadsheet मा जस्तै छिटो डेटा लोड गर्न, आवश्यकता अनुसार भिन्न ढाँचामा डेटालाई परिवर्तन गर्न, २ वा २ भन्दा बढी डेटासेटहरुलाई मर्ज गर्ने लगायतका कामहरू गर्नको लागी सहजता प्रदान गर्दछ । यसले डेटा क्लिनिङ्ग र structured डेटाका ढाँचाहरू जस्तै tables, matrices, र time-series सँग काम गर्न सजिलो बनाउँछ । यो Python का अरु scientific libraries सँग पनि राम्रोसँग काम गर्छ ।]]></summary></entry><entry><title type="html">डेटा एनालाईसिस गर्दा सहि प्लट छनौट गर्ने तरिका</title><link href="https://www.enepal.net.np//2025/01/24/choosing_right_plot.html" rel="alternate" type="text/html" title="डेटा एनालाईसिस गर्दा सहि प्लट छनौट गर्ने तरिका" /><published>2025-01-24T02:47:12+00:00</published><updated>2025-01-24T02:47:12+00:00</updated><id>https://www.enepal.net.np//2025/01/24/choosing_right_plot</id><content type="html" xml:base="https://www.enepal.net.np//2025/01/24/choosing_right_plot.html"><![CDATA[<table>
  <thead>
    <tr>
      <th>Model</th>
      <th>Launch Year</th>
      <th>Engine Type</th>
      <th>Engine Capacity (cc)</th>
      <th>Price (INR)</th>
      <th>Sales (Units)</th>
      <th>City Mileage (km/l)</th>
      <th>Top Speed (km/h)</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Bullet 350</td>
      <td>2000</td>
      <td>Single-Cylinder</td>
      <td>346</td>
      <td>150,000</td>
      <td>10,000</td>
      <td>35</td>
      <td>120</td>
    </tr>
    <tr>
      <td>Classic 350</td>
      <td>2005</td>
      <td>Single-Cylinder</td>
      <td>349</td>
      <td>200,000</td>
      <td>30,000</td>
      <td>40</td>
      <td>130</td>
    </tr>
    <tr>
      <td>Meteor 350</td>
      <td>2020</td>
      <td>Single-Cylinder</td>
      <td>349</td>
      <td>230,000</td>
      <td>25,000</td>
      <td>35</td>
      <td>140</td>
    </tr>
    <tr>
      <td>Himalayan</td>
      <td>2016</td>
      <td>Single-Cylinder</td>
      <td>411</td>
      <td>250,000</td>
      <td>15,000</td>
      <td>30</td>
      <td>140</td>
    </tr>
    <tr>
      <td>Interceptor 650</td>
      <td>2018</td>
      <td>Parallel Twin</td>
      <td>648</td>
      <td>350,000</td>
      <td>12,000</td>
      <td>25</td>
      <td>160</td>
    </tr>
    <tr>
      <td>Continental GT 650</td>
      <td>2018</td>
      <td>Parallel Twin</td>
      <td>648</td>
      <td>350,000</td>
      <td>8,000</td>
      <td>20</td>
      <td>160</td>
    </tr>
  </tbody>
</table>

<p>ओहो , हामी यसलाई पाईथनमा ठ्याक्क यस्तै डेटा सेट बनाएर राखौ अनि त्यसलाई आवश्यकता अनुसार बिभिन्न प्लट बनाम्ला</p>
<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="n">pandas</span> <span class="k">as</span> <span class="n">pd</span>

<span class="c1"># Dataset: Royal Enfield Bike Sales Data
</span><span class="n">data</span> <span class="o">=</span> <span class="p">{</span>
    <span class="sh">'</span><span class="s">Model</span><span class="sh">'</span><span class="p">:</span> <span class="p">[</span><span class="sh">'</span><span class="s">Bullet 350</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">Classic 350</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">Meteor 350</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">Himalayan</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">Interceptor 650</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">Continental GT 650</span><span class="sh">'</span><span class="p">],</span>
    <span class="sh">'</span><span class="s">Launch Year</span><span class="sh">'</span><span class="p">:</span> <span class="p">[</span><span class="mi">2000</span><span class="p">,</span> <span class="mi">2005</span><span class="p">,</span> <span class="mi">2020</span><span class="p">,</span> <span class="mi">2016</span><span class="p">,</span> <span class="mi">2018</span><span class="p">,</span> <span class="mi">2018</span><span class="p">],</span>
    <span class="sh">'</span><span class="s">Engine Type</span><span class="sh">'</span><span class="p">:</span> <span class="p">[</span><span class="sh">'</span><span class="s">Single-Cylinder</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">Single-Cylinder</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">Single-Cylinder</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">Single-Cylinder</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">Parallel Twin</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">Parallel Twin</span><span class="sh">'</span><span class="p">],</span>
    <span class="sh">'</span><span class="s">Engine Capacity (cc)</span><span class="sh">'</span><span class="p">:</span> <span class="p">[</span><span class="mi">346</span><span class="p">,</span> <span class="mi">349</span><span class="p">,</span> <span class="mi">349</span><span class="p">,</span> <span class="mi">411</span><span class="p">,</span> <span class="mi">648</span><span class="p">,</span> <span class="mi">648</span><span class="p">],</span>
    <span class="sh">'</span><span class="s">Price (INR)</span><span class="sh">'</span><span class="p">:</span> <span class="p">[</span><span class="mi">150000</span><span class="p">,</span> <span class="mi">200000</span><span class="p">,</span> <span class="mi">230000</span><span class="p">,</span> <span class="mi">250000</span><span class="p">,</span> <span class="mi">350000</span><span class="p">,</span> <span class="mi">350000</span><span class="p">],</span>
    <span class="sh">'</span><span class="s">Sales (Units)</span><span class="sh">'</span><span class="p">:</span> <span class="p">[</span><span class="mi">10000</span><span class="p">,</span> <span class="mi">30000</span><span class="p">,</span> <span class="mi">25000</span><span class="p">,</span> <span class="mi">15000</span><span class="p">,</span> <span class="mi">12000</span><span class="p">,</span> <span class="mi">8000</span><span class="p">],</span>
    <span class="sh">'</span><span class="s">City Mileage (km/l)</span><span class="sh">'</span><span class="p">:</span> <span class="p">[</span><span class="mi">35</span><span class="p">,</span> <span class="mi">40</span><span class="p">,</span> <span class="mi">35</span><span class="p">,</span> <span class="mi">30</span><span class="p">,</span> <span class="mi">25</span><span class="p">,</span> <span class="mi">20</span><span class="p">],</span>
    <span class="sh">'</span><span class="s">Top Speed (km/h)</span><span class="sh">'</span><span class="p">:</span> <span class="p">[</span><span class="mi">120</span><span class="p">,</span> <span class="mi">130</span><span class="p">,</span> <span class="mi">140</span><span class="p">,</span> <span class="mi">140</span><span class="p">,</span> <span class="mi">160</span><span class="p">,</span> <span class="mi">160</span><span class="p">]</span>
<span class="p">}</span>

<span class="c1"># Convert to DataFrame
</span><span class="n">df</span> <span class="o">=</span> <span class="n">pd</span><span class="p">.</span><span class="nc">DataFrame</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>

<span class="c1"># Show the dataset
</span><span class="n">df</span>


</code></pre></div></div>

<p>यो डेटासेटलाई हामी विभिन्न तरिकामा प्रस्तुत गर्न सक्छौं। हामीले कुन डेटा ग्राफिकल रूपमा प्रस्तुत गर्न चाहन्छौं र त्यसका आधारमा कुन चार्ट प्रयोग गर्ने भन्ने कुरा चयन गर्न सजिलो हुन्छ। उदाहरणका लागि, यदि दुई वटा न्यूमेरिक भ्यालु भएका भेरिएबलहरूलाई तुलना गरेर ग्राफिकल रूपमा प्रस्तुत गर्न चाहन्छौं भने, न्यूमेरिक - न्यूमेरिक डेटा प्लटको सिद्धान्त अनुसार ग्राफ तयार गर्दा त्यसको प्रस्तुति उपयोगी र सबैले बुझ्न सक्ने हुन्छ।</p>

<h1 id="numeric-vs-numeric">Numeric vs Numeric</h1>
<p>जस्तै, वर्ष अनुसार पास हुने विद्यार्थीहरूको मात्राबारे कुरा गर्दा, सबैभन्दा पहिले विद्यालयको प्रकार नछुटाई पास हुने विद्यार्थीहरूको जम्मा संख्या निकाल्नुपर्छ। त्यसपछि यसलाई विभिन्न चार्टहरूमा प्रस्तुत गर्न सकिन्छ:</p>
<blockquote>
  <p>Scatter Plot 📈 → सम्बन्ध छ कि छैन हेर्न (जस्तै, वर्ष र पास हुने विद्यार्थीहरूको संख्या = दुवै न्युमेरिक भ्यालु)</p>
  <div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">px</span><span class="p">.</span><span class="nf">scatter</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">x</span><span class="o">=</span><span class="sh">"</span><span class="s">Year</span><span class="sh">"</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="sh">"</span><span class="s">Pass Percentage (%)</span><span class="sh">"</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="sh">"</span><span class="s">Relation Between Year and Pass Percentage</span><span class="sh">"</span><span class="p">)</span>
</code></pre></div>  </div>
  <p>Line Plot 📉 → वर्ष अनुसार पास हुने विद्यार्थीहरूको संख्या</p>
  <div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">px</span><span class="p">.</span><span class="nf">line</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">x</span><span class="o">=</span><span class="sh">"</span><span class="s">Year</span><span class="sh">"</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="sh">"</span><span class="s">Pass Percentage (%)</span><span class="sh">"</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="sh">"</span><span class="s">Relation Between Year and Pass Percentage</span><span class="sh">"</span><span class="p">)</span>
</code></pre></div>  </div>
  <p>Regression Plot 📏 → ट्रेन्ड हेर्न (जस्तै, पछिल्ला वर्षहरूमा पास हुने विद्यार्थीहरूको प्रतिशत)</p>
  <div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">px</span><span class="p">.</span><span class="nf">scatter</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">x</span><span class="o">=</span><span class="sh">"</span><span class="s">Year</span><span class="sh">"</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="sh">"</span><span class="s">Total Pass Count</span><span class="sh">"</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="sh">"</span><span class="s">Relation Between Year and Pass Percentage</span><span class="sh">"</span><span class="p">,</span> <span class="n">trendline</span><span class="o">=</span><span class="sh">"</span><span class="s">ols</span><span class="sh">"</span><span class="p">)</span>
</code></pre></div>  </div>
  <p>माथीको रिग्रेशन प्लट याद गर्नु भयो । यसमा दुबै न्युेरिक भ्यालु हुन जरुरी भएको Total Pass (%) को सट्टामा Total Pass Count लिएको छ ।
यसरी, यी चार्टहरूको प्रयोग गरेर हामी सजिलै ग्राफ तयार गर्न सक्छौं।</p>
</blockquote>

<h1 id="numeric-vs-categorical">Numeric vs Categorical</h1>

<p>त्यस्तै, यदि एउटा न्युमेरिक भ्यालु र एउटा क्याटेगोरीकल भ्यालु लिएर प्लट निर्माण गर्नु पर्छ भने, न्युमेरिक - क्याटेगोरीकल सिद्धान्त अनुसार ग्राफ तयार गर्दा त्यसको प्रस्तुति र उपयोगिता सबैले बुझ्न सक्ने हुन्छ। जस्तै, वर्ष अनुसार पास हुने विद्यार्थीहरूको मात्र कुरा गर्दा, सबैभन्दा पहिले विद्यालयको प्रकार नछुटाई पास हुने विद्यार्थीहरूको संख्या निकाल्नु पर्छ। त्यसपछि यसलाई विभिन्न चार्टहरूमा प्रस्तुत गर्न सकिन्छ:</p>
<ul>
  <li>Bar Chart (ठाडो/तेर्सो बार ग्राफ) 📊 → वर्ष अनुसार पास हुने विद्यार्थीहरूको संख्या</li>
  <li>Box Plot (बाकस ग्राफ) 📦 → डेटा फैलावट (Distribution) र आउटलाइअर (Outliers) हेर्न। माथिको उदाहरणमा, वर्ष अनुसार पास हुने विद्यार्थीहरूको संख्या हेर्न सकिन्छ।</li>
  <li>Violin Plot 🎻 → वर्ष अनुसार पास हुने विद्यार्थीहरूको प्रतिशतको वितरण। जस्तै: २०१८ देखि २०२२ सम्मको विद्यार्थीहरूको पास प्रतिशतको वितरण। Violin Plot ले वितरणको आकार र घनत्व राम्रोसँग देखाउँछ, जसले स्पष्ट रूपमा डेटा को फैलावट र मुख्य केन्द्र बिन्दु देखाउँछ।</li>
</ul>

<h1 id="categorical-vs-categorical">Categorical vs Categorical</h1>
<p>यसै गरी दुई वटा क्याटेगोरिकल डेटा बिचका तुलनाहरू गर्न क्याटेगोरिकल - क्याटेगोरिकल सिद्धान्त अनुसार ग्राफ तयार गर्दा यसको प्रस्तुति र उपयोगिता सबैले बुझ्न सक्ने हुन्छ। जस्तो, विद्यालयको वर्ग अनुसार पास हुने छात्र/छात्राको कुरा गर्दा, सबैभन्दा पहिले वर्ष अनुसार</p>
<ul>
  <li>Grouped Bar Chart (समूहिक बार ग्राफ) 🏗 → यसले वर्ष र लिंग अनुसार पास विद्यार्थीहरूको संख्या तुलनात्मक रूपले देखाउँछ। यसमा प्रत्येक वर्षको लागि छात्र र छात्रा बीचको पास संख्याको तुलना गर्न सकिन्छ।</li>
  <li>Stacked Bar Chart (थुप्रिएको बार ग्राफ) 📊 → यसले प्रत्येक वर्षमा सार्वजनिक, निजी, र मिशनरी विद्यालयका विद्यार्थिहरूको पास संख्या देखाउँछ। यसले क्याटेगोरिकल प्रकारहरूको वितरण देखाउँछ र वर्ष अनुसार तिनीहरूको योगदान बुझ्न मद्दत पुर्‍याउँछ।</li>
</ul>

<hr />]]></content><author><name>Anish Bhattarai</name></author><summary type="html"><![CDATA[Model Launch Year Engine Type Engine Capacity (cc) Price (INR) Sales (Units) City Mileage (km/l) Top Speed (km/h) Bullet 350 2000 Single-Cylinder 346 150,000 10,000 35 120 Classic 350 2005 Single-Cylinder 349 200,000 30,000 40 130 Meteor 350 2020 Single-Cylinder 349 230,000 25,000 35 140 Himalayan 2016 Single-Cylinder 411 250,000 15,000 30 140 Interceptor 650 2018 Parallel Twin 648 350,000 12,000 25 160 Continental GT 650 2018 Parallel Twin 648 350,000 8,000 20 160]]></summary></entry><entry><title type="html">पाइथन प्लटी एक्सप्रेसमा प्रयोग हुने ग्राफका प्रकार</title><link href="https://www.enepal.net.np//2025/01/17/type_of_plot.html" rel="alternate" type="text/html" title="पाइथन प्लटी एक्सप्रेसमा प्रयोग हुने ग्राफका प्रकार" /><published>2025-01-17T14:53:12+00:00</published><updated>2025-01-17T14:53:12+00:00</updated><id>https://www.enepal.net.np//2025/01/17/type_of_plot</id><content type="html" xml:base="https://www.enepal.net.np//2025/01/17/type_of_plot.html"><![CDATA[<p><a href="https://plotly.com/python/plotly-express/" target="_blank"> पाइथन प्लटी एक्सप्रेस </a> मा विभिन्न ग्राफहरू जस्तै स्क्याटर प्लट, लाइन प्लट, बार चार्ट, हिस्टोग्राम, बक्स प्लट, डेनसिटी हीटम्याप, र पाई चार्ट प्रयोग गरेर दुई वा बढी भेरिएबलहरूको सम्बन्ध, समयसँगको परिवर्तन, क्याटेगोरिकल डाटाको तुलना, वितरण, र अनुपातको विश्लेषण गर्न सकिन्छ। उदाहरणका रूपमा, दिउसो न्युरोड गल्लीमा हुने व्यापारलाई अनुमान गर्न, तापमान र ग्राहक खर्चका बीचको सम्बन्धलाई स्क्याटर प्लटमा देखाउन सकिन्छ, दिनको समयमा ग्राहक खर्चको परिवर्तनलाई लाइन प्लटमा देखाउन सकिन्छ, र विभिन्न समय अवधिमा भएका बिक्रीलाई बार चार्टमा तुलना गर्न सकिन्छ। यसरी, विभिन्न चार्टहरू प्रयोग गरेर व्यापारका डाटाको विश्लेषण गर्न सकिन्छ र भविष्यका ट्रेन्ड र व्यावसायिक निर्णयहरूमा मद्दत गर्न सकिन्छ।</p>

<h1 id="scatter-plot">Scatter Plot</h1>
<audio controls="">
  <source src="/audio/scatter-plot.mp3" type="audio/mp3" />
  Your browser does not support the audio element.
</audio>
<p>स्क्याटर प्लट भनेको एउटा ग्राफ हो जसले दुई वटा भेरिएबल बीचको सम्बन्ध देखाउँछ। यसमा एउटा भेरिएबललाई एक्स-एक्सिसमा र अर्को भेरिएबललाई वाई-एक्सिसमा राखिन्छ। यसले दुई भेरिएबलको बीचमा कस्तो प्रकारको सम्बन्ध छ भन्ने कुरा ग्राफको माध्यमबाट प्रष्ट पार्छ। साधारणतया, यस ग्राफको प्रयोग correlation, clusters, र trends देखाउनका लागि उपयुक्त हुन्छ।</p>

<p>उदाहरणको लागि: मानौं, तपाईलाई सिजन अनुसार खरिद-बिक्रीको अध्ययन गर्नु छ। यदि तपाई तापक्रम अनुसार ग्राहकले कति खर्च गर्छन् भन्ने कुरा बुझ्न चाहनुहुन्छ भने, स्क्याटर प्लटको मद्दतले तपाईं यसलाई बुझ्न सक्नुहुन्छ। यसका लागि,  एक्स-एक्सिसमा तापक्रम राख्नुहोस् (अर्थात्, जति तातो, त्यति बढी अंक) र वाइ-एक्सिसमा सपिङ खर्च राख्नुहोस्। अब, स्क्याटर ग्राफको सहयोगले  तापमानसँगै खर्च बढिरहेको छ कि घटिरहेको छ थाहा पाउन सकिन्छ ।
अर्थात, यदि प्वाईन्टहरू माथि जान्छ भने, यसको अर्थ हो कि गर्मीको समयमा मानिसहरूले बढी खर्च गर्छन् । यदि प्वाईन्टहरू तल जान्छ भने, यसको अर्थ हो कि गर्मीको समयमा खर्च कम हुन्छ । यसरी, स्क्याटर प्लटले दुई भेरिएबल बीचको सम्बन्धलाई बुझ्नमा मद्दत गर्छ।</p>

<p><img src="/images/scatter.png" alt="Bar Image" /></p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
<span class="kn">import</span> <span class="n">plotly.express</span> <span class="k">as</span> <span class="n">px</span>
<span class="kn">import</span> <span class="n">pandas</span> <span class="k">as</span> <span class="n">pd</span>

<span class="c1"># Create a sample dataset
</span><span class="n">data</span> <span class="o">=</span> <span class="p">{</span>
    <span class="sh">'</span><span class="s">Temperature</span><span class="sh">'</span><span class="p">:</span> <span class="p">[</span><span class="mi">20</span><span class="p">,</span> <span class="mi">25</span><span class="p">,</span> <span class="mi">30</span><span class="p">,</span> <span class="mi">35</span><span class="p">,</span> <span class="mi">40</span><span class="p">,</span> <span class="mi">45</span><span class="p">,</span> <span class="mi">50</span><span class="p">],</span>
    <span class="sh">'</span><span class="s">Shopping_Spending</span><span class="sh">'</span><span class="p">:</span> <span class="p">[</span><span class="mi">150</span><span class="p">,</span> <span class="mi">200</span><span class="p">,</span> <span class="mi">250</span><span class="p">,</span> <span class="mi">300</span><span class="p">,</span> <span class="mi">350</span><span class="p">,</span> <span class="mi">400</span><span class="p">,</span> <span class="mi">450</span><span class="p">]</span>
<span class="p">}</span>

<span class="c1"># Convert to DataFrame
</span><span class="n">df</span> <span class="o">=</span> <span class="n">pd</span><span class="p">.</span><span class="nc">DataFrame</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>

<span class="c1"># Create a scatter plot
</span><span class="n">fig</span> <span class="o">=</span> <span class="n">px</span><span class="p">.</span><span class="nf">scatter</span><span class="p">(</span><span class="n">df</span><span class="p">,</span> <span class="n">x</span><span class="o">=</span><span class="sh">'</span><span class="s">Temperature</span><span class="sh">'</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="sh">'</span><span class="s">Shopping_Spending</span><span class="sh">'</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="sh">"</span><span class="s">Temperature vs Shopping Spending</span><span class="sh">"</span><span class="p">,</span>
                 <span class="n">labels</span><span class="o">=</span><span class="p">{</span><span class="sh">'</span><span class="s">Temperature</span><span class="sh">'</span><span class="p">:</span> <span class="sh">'</span><span class="s">Temperature (°C)</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">Shopping_Spending</span><span class="sh">'</span><span class="p">:</span> <span class="sh">'</span><span class="s">Shopping Spending ($)</span><span class="sh">'</span><span class="p">})</span>

<span class="c1"># Show the plot
</span><span class="n">fig</span><span class="p">.</span><span class="nf">show</span><span class="p">()</span>

</code></pre></div></div>
<h1 id="line-plot">Line Plot</h1>
<audio controls="">
  <source src="/audio/line.mp3" type="audio/mp3" />
  Your browser does not support the audio element.
</audio>
<p>लाइन प्लट भनेको एउटा ग्राफ हो जसले समयको क्रममा भएको परिवर्तनलाई देखाउँछ। यसमा समयलाई एक्स-एक्सिसमा र परिवर्तन हुने भेरिएबललाई वाई-एक्सिसमा राखिन्छ। यसले समयसँगै कुनै एक भेरिएबलको भ्यालुमा कस्तो परिवर्तन भइरहेको छ भन्ने कुरा ग्राफको माध्यमबाट प्रष्ट पार्दछ। साधारणतया, यस ग्राफको प्रयोग समय सँगै भएका ट्रेन्ड, परिवर्तन, र भविष्यको अनुमान गर्नका लागि उपयुक्त हुन्छ।</p>

<p>उदाहरणको लागि: मानौं, तपाईलाई कुनै एक दिनभरिमा कुन समयामा ग्राहकले कति खरिद गर्छन् भन्ने कुरा बुझ्न छ भने, लाइन प्लटको मद्दतले तपाईं यसलाई अध्ययन गर्न सक्नुहुन्छ। यसका लागि, एक्स-एक्सिसमा समय (घण्टा) राख्नु पर्दछ र वाइ-एक्सिसमा बिक्री राख्नु पर्दछ।
अब, लाइन ग्राफको सहयोगले तपाईंलाई समय अनुसार कतिखेर धेरै बिक्री हुन्छ र कतिखेर कम हुन्छ भन्ने थाहा पाउन सकिन्छ । यहाँ यदि लाईन माथि जान्छ भने, यसको अर्थ हो कि दिन ढल्दै जाँदा किन्ने मानिसहरूले बढी आउछन र धेरै खरिद गर्छन् । यदि लाईन तल जान्छ भने, यसको अर्थ हो कि दिन ढल्दै जाँदा मान्छेहरू कम आउछन र कम बिक्रि हुन्छ।</p>

<p>यसरी, लाइन प्लटले समयसँग सम्बन्धित भेरिएबलको परिवर्तनलाई बुझ्नमा मद्दत गर्छ।</p>

<p><img src="/images/line.png" alt="Bar Image" /></p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="n">plotly.express</span> <span class="k">as</span> <span class="n">px</span>
<span class="kn">import</span> <span class="n">pandas</span> <span class="k">as</span> <span class="n">pd</span>

<span class="c1"># Create a sample dataset
</span><span class="n">data</span> <span class="o">=</span> <span class="p">{</span>
    <span class="sh">'</span><span class="s">Time</span><span class="sh">'</span><span class="p">:</span> <span class="p">[</span><span class="sh">'</span><span class="s">9 AM</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">12 PM</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">5 PM</span><span class="sh">'</span><span class="p">],</span>
    <span class="sh">'</span><span class="s">Shopping_Spending</span><span class="sh">'</span><span class="p">:</span> <span class="p">[</span><span class="mi">100</span><span class="p">,</span> <span class="mi">200</span><span class="p">,</span> <span class="mi">150</span><span class="p">]</span>
<span class="p">}</span>

<span class="c1"># Convert to DataFrame
</span><span class="n">df</span> <span class="o">=</span> <span class="n">pd</span><span class="p">.</span><span class="nc">DataFrame</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>

<span class="c1"># Create a line plot
</span><span class="n">fig</span> <span class="o">=</span> <span class="n">px</span><span class="p">.</span><span class="nf">line</span><span class="p">(</span><span class="n">df</span><span class="p">,</span> <span class="n">x</span><span class="o">=</span><span class="sh">'</span><span class="s">Time</span><span class="sh">'</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="sh">'</span><span class="s">Shopping_Spending</span><span class="sh">'</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="sh">"</span><span class="s">Shopping Spending Throughout the Day</span><span class="sh">"</span><span class="p">,</span>
              <span class="n">labels</span><span class="o">=</span><span class="p">{</span><span class="sh">'</span><span class="s">Shopping_Spending</span><span class="sh">'</span><span class="p">:</span> <span class="sh">'</span><span class="s">Shopping Spending ($)</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">Time</span><span class="sh">'</span><span class="p">:</span> <span class="sh">'</span><span class="s">Time of Day</span><span class="sh">'</span><span class="p">})</span>

<span class="c1"># Show the plot
</span><span class="n">fig</span><span class="p">.</span><span class="nf">show</span><span class="p">()</span>

</code></pre></div></div>
<h1 id="bar-chart">Bar Chart</h1>
<audio controls="">
  <source src="/audio/bar.mp3" type="audio/mp3" />
  Your browser does not support the audio element.
</audio>
<p>बार चार्ट क्याटेगोरिकल डाटा को तुलना गर्न प्रयोग गरिन्छ। यसमा विभिन्न क्याटेगोरीहरूको तुलना गर्नका लागि बारहरूको उचाई लाई आधार मानी जानकारी प्रस्तुत गरिन्छ। यसले बारको हाइटको आधारमा तुलना गर्न सहयोग गर्दछ ।</p>

<p>उदाहरणको लागि, मानौं तपाईंलाई दिन भरी निश्चीत समयवधीको आधारमा कति बिक्री भएको छ भन्ने कुरा जान्न छ भने, तपाईं बार चार्टको प्रयोग गर्न सक्नुहुन्छ। यसका लागि, तपाईंको एक्स-एक्सिसमा समयको क्याटेगोरी राख्नु पर्दछ , जस्तै १० देखी १ बजे, १ देखी ४ बजे, र ४ देखी ७ बजे। वाइ-एक्सिसमा त्यस समयमा भएको बिक्रीको रकम राख्नु पर्दछ । त्यसपछी तुलनात्मक रुपमा कुन समयमा धेरै बिक्रि हुन्छ र कुन समयमा कम बिक्री हुन्छ ग्राफ हेरेर नै थाहा पाउन सकिन्छ ।</p>

<p><img src="/images/bar.png" alt="Bar Image" /></p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="n">plotly.express</span> <span class="k">as</span> <span class="n">px</span>
<span class="kn">import</span> <span class="n">pandas</span> <span class="k">as</span> <span class="n">pd</span>

<span class="c1"># Create a sample dataset for sales in different time periods
</span><span class="n">data</span> <span class="o">=</span> <span class="p">{</span>
    <span class="sh">'</span><span class="s">Time_Period</span><span class="sh">'</span><span class="p">:</span> <span class="p">[</span><span class="sh">'</span><span class="s">10 AM - 1 PM</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">1 PM - 4 PM</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">4 PM - 7 PM</span><span class="sh">'</span><span class="p">],</span>
    <span class="sh">'</span><span class="s">Sales</span><span class="sh">'</span><span class="p">:</span> <span class="p">[</span><span class="mi">500</span><span class="p">,</span> <span class="mi">1000</span><span class="p">,</span> <span class="mi">750</span><span class="p">]</span>
<span class="p">}</span>

<span class="c1"># Convert to DataFrame
</span><span class="n">df</span> <span class="o">=</span> <span class="n">pd</span><span class="p">.</span><span class="nc">DataFrame</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>

<span class="c1"># Create a bar chart
</span><span class="n">fig</span> <span class="o">=</span> <span class="n">px</span><span class="p">.</span><span class="nf">bar</span><span class="p">(</span><span class="n">df</span><span class="p">,</span> <span class="n">x</span><span class="o">=</span><span class="sh">'</span><span class="s">Time_Period</span><span class="sh">'</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="sh">'</span><span class="s">Sales</span><span class="sh">'</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="sh">"</span><span class="s">Sales by Time Period</span><span class="sh">"</span><span class="p">,</span>
             <span class="n">labels</span><span class="o">=</span><span class="p">{</span><span class="sh">'</span><span class="s">Sales</span><span class="sh">'</span><span class="p">:</span> <span class="sh">'</span><span class="s">Sales ($)</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">Time_Period</span><span class="sh">'</span><span class="p">:</span> <span class="sh">'</span><span class="s">Time Period</span><span class="sh">'</span><span class="p">})</span>

<span class="c1"># Show the plot
</span><span class="n">fig</span><span class="p">.</span><span class="nf">show</span><span class="p">()</span>

</code></pre></div></div>
<h1 id="histogram">Histogram</h1>
<audio controls="">
  <source src="/audio/histogram.mp3" type="audio/mp3" />
  Your browser does not support the audio element.
</audio>
<p>सिंगल न्युमेरिकल भेरीएबलको डिस्ट्रीब्युसन देखाउन हिस्टोग्रामको प्रयोग गर्न सकिन्छ। हिस्टोग्राम ग्राफ बनाउनका लागि एउटा मात्र संख्यात्मक डाटा (जस्तै, ग्राहकहरूको खरिद रकम) लिइन्छ र त्यस डाटाको वितरण विश्लेषण गर्न हिस्टोग्राम चार्ट प्रयोग गरिन्छ। हिस्टोग्राम चार्टले डाटा कुन रेंजमा कति धेरै वा कम छ भनेर विश्लेषण गर्दछ। यसमा, डाटा निश्चित अन्तराल (bins) मा वर्गीकृत गरिन्छ र प्रत्येक बिनको लागि एउटा बार हुन्छ जसले त्यस बिनको भित्रको डाटा कति छ भनेर देखाउँछ।</p>

<p>उदाहरणको लागि, तपाईंको सँग १०० ग्राहकहरूको खरिद रकमको डाटा छ। तपाईं यो डाटाको माध्यमबाट कति ग्राहकले कति देखि कति सम्म पैसा खर्च गरेका छन् भन्ने कुरा ग्राफिकल रूपमा व्यक्त गर्न सक्नुहुन्छ। त्यसका लागि तपाईं हिस्टोग्राम चार्टको प्रयोग गर्नु पर्दछ।</p>

<p><img src="/images/histogram.png" alt="Bar Image" /></p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="n">plotly.express</span> <span class="k">as</span> <span class="n">px</span>

<span class="c1"># Data for customer spending
</span><span class="n">data</span> <span class="o">=</span> <span class="p">{</span>
    <span class="sh">'</span><span class="s">Spending Range</span><span class="sh">'</span><span class="p">:</span> <span class="p">[</span><span class="sh">'</span><span class="s">0-50</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">50-100</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">100-150</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">150-200</span><span class="sh">'</span><span class="p">],</span>
    <span class="sh">'</span><span class="s">Number of Customers</span><span class="sh">'</span><span class="p">:</span> <span class="p">[</span><span class="mi">30</span><span class="p">,</span> <span class="mi">50</span><span class="p">,</span> <span class="mi">10</span><span class="p">,</span> <span class="mi">5</span><span class="p">]</span>
<span class="p">}</span>

<span class="c1"># Create a histogram using Plotly Express
</span><span class="n">fig</span> <span class="o">=</span> <span class="n">px</span><span class="p">.</span><span class="nf">bar</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">x</span><span class="o">=</span><span class="sh">'</span><span class="s">Spending Range</span><span class="sh">'</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="sh">'</span><span class="s">Number of Customers</span><span class="sh">'</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="sh">"</span><span class="s">Customer Spending Distribution</span><span class="sh">"</span><span class="p">,</span>
             <span class="n">labels</span><span class="o">=</span><span class="p">{</span><span class="sh">'</span><span class="s">Spending Range</span><span class="sh">'</span><span class="p">:</span> <span class="sh">'</span><span class="s">Spending Range (in dollars)</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">Number of Customers</span><span class="sh">'</span><span class="p">:</span> <span class="sh">'</span><span class="s">Number of Customers</span><span class="sh">'</span><span class="p">})</span>

<span class="c1"># Show the plot
</span><span class="n">fig</span><span class="p">.</span><span class="nf">show</span><span class="p">()</span>

</code></pre></div></div>
<h1 id="box-plot">Box Plot</h1>
<audio controls="">
  <source src="/audio/box.mp3" type="audio/mp3" />
  Your browser does not support the audio element.
</audio>
<p>बक्स प्लट भनेको एक प्रकारको ग्राफ हो जसले डाटाको Distribution, Median, Spread or Dispersion, र विभिन्न क्वार्टाइलहरूको (क्वार्टाइल १, मिडियन, क्वार्टाइल ३) विश्लेषण गर्न मद्दत गर्छ। यो ग्राफले डाटा सेटको बारेमा महत्वपूर्ण जानकारीको सारांश दिन्छ।</p>

<p>उदाहरणको रूपमा, हामी माथि दिइएको ग्राहकहरूको खरिद रकमको डाटालाई बक्स प्लटको मद्दतले विश्लेषण गर्न सक्छौं। बक्स प्लटले डाटाको मध्य मान, न्यूनतम र अधिकतम मान, र २५ प्रतिशत र ७५ प्रतिशतका क्वार्टाइलहरू देखाउँछ।</p>

<p>हामीसँग १०० ग्राहकहरूको खरिद रकमको डाटा छ, जसलाई विभिन्न श्रेणीहरूमा विभाजित गर्न सकिन्छ, जस्तै ०-५० रुपयाँ, ५०-१००  रुपयाँ, १००-१५०  रुपयाँ, र १५०-२००  रुपयाँ । बक्स प्लटको माध्यमबाट हामी प्रत्येक श्रेणीको डाटा Distribution लाई देख्न सक्छौं।</p>

<p><img src="/images/box.png" alt="Bar Image" /></p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="n">plotly.express</span> <span class="k">as</span> <span class="n">px</span>
<span class="kn">import</span> <span class="n">pandas</span> <span class="k">as</span> <span class="n">pd</span>

<span class="c1"># Sample data for spending
</span><span class="n">spending_data</span> <span class="o">=</span> <span class="p">[</span><span class="mi">50</span><span class="p">,</span> <span class="mi">80</span><span class="p">,</span> <span class="mi">90</span><span class="p">,</span> <span class="mi">200</span><span class="p">,</span> <span class="mi">30</span><span class="p">,</span> <span class="mi">45</span><span class="p">,</span> <span class="mi">100</span><span class="p">,</span> <span class="mi">60</span><span class="p">,</span> <span class="mi">120</span><span class="p">,</span> <span class="mi">160</span><span class="p">,</span> <span class="mi">50</span><span class="p">,</span> <span class="mi">95</span><span class="p">,</span> <span class="mi">180</span><span class="p">,</span> <span class="mi">55</span><span class="p">,</span> <span class="mi">130</span><span class="p">,</span> <span class="mi">140</span><span class="p">,</span> <span class="mi">75</span><span class="p">,</span> <span class="mi">85</span><span class="p">,</span> <span class="mi">110</span><span class="p">,</span> <span class="mi">45</span><span class="p">]</span>

<span class="c1"># Create DataFrame
</span><span class="n">df</span> <span class="o">=</span> <span class="n">pd</span><span class="p">.</span><span class="nc">DataFrame</span><span class="p">(</span><span class="n">spending_data</span><span class="p">,</span> <span class="n">columns</span><span class="o">=</span><span class="p">[</span><span class="sh">'</span><span class="s">Spending</span><span class="sh">'</span><span class="p">])</span>

<span class="c1"># Create the box plot using Plotly
</span><span class="n">fig</span> <span class="o">=</span> <span class="n">px</span><span class="p">.</span><span class="nf">box</span><span class="p">(</span><span class="n">df</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="sh">"</span><span class="s">Spending</span><span class="sh">"</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="sh">"</span><span class="s">Customer Spending Distribution (Box Plot)</span><span class="sh">"</span><span class="p">,</span>
             <span class="n">labels</span><span class="o">=</span><span class="p">{</span><span class="sh">'</span><span class="s">Spending</span><span class="sh">'</span><span class="p">:</span> <span class="sh">'</span><span class="s">Spending (in dollars)</span><span class="sh">'</span><span class="p">})</span>

<span class="c1"># Show the plot
</span><span class="n">fig</span><span class="p">.</span><span class="nf">show</span><span class="p">()</span>

</code></pre></div></div>
<h1 id="density-heatmap">Density Heatmap</h1>
<audio controls="">
  <source src="/audio/density.mp3" type="audio/mp3" />
  Your browser does not support the audio element.
</audio>
<p>Density heatmap एक प्रकारको ग्राफ हो जसले दुई भेरिएबलहरूको बीचमा डाटाको घनत्व देखाउँछ। यसमा, प्रत्येक पिक्सल (या सेल) को रंगको गहिराईले त्यहाँको डाटाको घनत्वलाई जनाउँछ। यसले तपाईलाई डाटा बिन्दुहरूको सघनता (density) बुझ्नमा मद्दत गर्छ।</p>

<p>माथि दिएको ग्राहक खर्च डाटा उदाहरणमा, हामी दुई भेरिएबलहरू, जस्तै खर्च र समयको आधारमा डाटाको घनत्व देखाउनका लागि density heatmap प्रयोग गर्न सक्छौं। मानौं, तपाईंको पास ग्राहकहरूको खर्च र विभिन्न समयमा गरिएको खरिदको डाटा छ। यसमा, तपाईं विभिन्न समयको अवधिमा ग्राहकहरूको खर्चमा हुने घनत्वको विश्लेषण गर्न सक्नुहुन्छ।</p>

<p><img src="/images/heatmap.png" alt="Bar Image" /></p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="n">plotly.express</span> <span class="k">as</span> <span class="n">px</span>
<span class="kn">import</span> <span class="n">pandas</span> <span class="k">as</span> <span class="n">pd</span>

<span class="c1"># ग्राहक खर्च र समयको कस्टम डाटा
</span><span class="n">data</span> <span class="o">=</span> <span class="p">{</span>
    <span class="sh">'</span><span class="s">Time</span><span class="sh">'</span><span class="p">:</span> <span class="p">[</span><span class="sh">'</span><span class="s">10-1 PM</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">1-4 PM</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">4-7 PM</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">10-1 PM</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">1-4 PM</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">4-7 PM</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">10-1 PM</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">1-4 PM</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">4-7 PM</span><span class="sh">'</span><span class="p">],</span>
    <span class="sh">'</span><span class="s">Spending</span><span class="sh">'</span><span class="p">:</span> <span class="p">[</span><span class="mi">50</span><span class="p">,</span> <span class="mi">200</span><span class="p">,</span> <span class="mi">150</span><span class="p">,</span> <span class="mi">30</span><span class="p">,</span> <span class="mi">120</span><span class="p">,</span> <span class="mi">180</span><span class="p">,</span> <span class="mi">60</span><span class="p">,</span> <span class="mi">90</span><span class="p">,</span> <span class="mi">100</span><span class="p">]</span>
<span class="p">}</span>

<span class="c1"># पाण्डास डाटाफ्रेम निर्माण
</span><span class="n">df</span> <span class="o">=</span> <span class="n">pd</span><span class="p">.</span><span class="nc">DataFrame</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>

<span class="c1"># Density Heatmap बनाउने
</span><span class="n">fig</span> <span class="o">=</span> <span class="n">px</span><span class="p">.</span><span class="nf">density_heatmap</span><span class="p">(</span><span class="n">df</span><span class="p">,</span> <span class="n">x</span><span class="o">=</span><span class="sh">"</span><span class="s">Time</span><span class="sh">"</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="sh">"</span><span class="s">Spending</span><span class="sh">"</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="sh">"</span><span class="s">Density Heatmap of Customer Spending by Time</span><span class="sh">"</span><span class="p">,</span>
                         <span class="n">labels</span><span class="o">=</span><span class="p">{</span><span class="sh">'</span><span class="s">Time</span><span class="sh">'</span><span class="p">:</span> <span class="sh">'</span><span class="s">समय</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">Spending</span><span class="sh">'</span><span class="p">:</span> <span class="sh">'</span><span class="s">खर्च (डलरमा)</span><span class="sh">'</span><span class="p">})</span>

<span class="c1"># ग्राफ देखाउने
</span><span class="n">fig</span><span class="p">.</span><span class="nf">show</span><span class="p">()</span>

</code></pre></div></div>
<h1 id="pie-chart">Pie Chart</h1>
<p>Pie chart को प्रयोग प्रायः क्याटेगोरिकल डाटाको अनुपातको तुलनात्मक विश्लेषण गर्नका लागि गरिन्छ। यो चार्टले प्रत्येक क्याटेगोरीको अनुपातलाई एक गोलाकार चार्टको रुपमा देखाउँछ, जसको प्रत्येक खण्डले एक क्याटेगोरीको अंश देखाउँछ। तपाईंले विभिन्न क्याटेगोरीहरूका बीचको अनुपातलाई सहजै देख्न सक्छन्।</p>

<p>अब, हामी माथिको उदाहरणमा ग्राहक खर्च र समयको आधारमा Pie chart प्रयोग गरेर यसलाई व्याख्या गर्नेछौं। यसमा, हामी समयका ३ क्याटेगोरीहरूलाई (१०-१ बजे, १-४ बजे, र ४-७ बजे) Pie chart मा देखाउँछौं र हरेक समयको अवधिमा ग्राहकहरूको खर्चको अनुपात कस्तो छ भनेर देखाउँछौं।</p>

<p><img src="/images/pie.png" alt="Bar Image" /></p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="n">plotly.express</span> <span class="k">as</span> <span class="n">px</span>
<span class="kn">import</span> <span class="n">pandas</span> <span class="k">as</span> <span class="n">pd</span>

<span class="c1"># ग्राहक खर्च र समयको कस्टम डाटा
</span><span class="n">data</span> <span class="o">=</span> <span class="p">{</span>
    <span class="sh">'</span><span class="s">Time</span><span class="sh">'</span><span class="p">:</span> <span class="p">[</span><span class="sh">'</span><span class="s">10-1 PM</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">1-4 PM</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">4-7 PM</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">10-1 PM</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">1-4 PM</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">4-7 PM</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">10-1 PM</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">1-4 PM</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">4-7 PM</span><span class="sh">'</span><span class="p">],</span>
    <span class="sh">'</span><span class="s">Spending</span><span class="sh">'</span><span class="p">:</span> <span class="p">[</span><span class="mi">50</span><span class="p">,</span> <span class="mi">200</span><span class="p">,</span> <span class="mi">150</span><span class="p">,</span> <span class="mi">30</span><span class="p">,</span> <span class="mi">120</span><span class="p">,</span> <span class="mi">180</span><span class="p">,</span> <span class="mi">60</span><span class="p">,</span> <span class="mi">90</span><span class="p">,</span> <span class="mi">100</span><span class="p">]</span>
<span class="p">}</span>

<span class="c1"># पाण्डास डाटाफ्रेम निर्माण
</span><span class="n">df</span> <span class="o">=</span> <span class="n">pd</span><span class="p">.</span><span class="nc">DataFrame</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>

<span class="c1"># समयको अनुसार खर्चको कुल रकम गणना
</span><span class="n">time_spending</span> <span class="o">=</span> <span class="n">df</span><span class="p">.</span><span class="nf">groupby</span><span class="p">(</span><span class="sh">'</span><span class="s">Time</span><span class="sh">'</span><span class="p">)[</span><span class="sh">'</span><span class="s">Spending</span><span class="sh">'</span><span class="p">].</span><span class="nf">sum</span><span class="p">().</span><span class="nf">reset_index</span><span class="p">()</span>

<span class="c1"># Pie chart बनाउने
</span><span class="n">fig</span> <span class="o">=</span> <span class="n">px</span><span class="p">.</span><span class="nf">pie</span><span class="p">(</span><span class="n">time_spending</span><span class="p">,</span> <span class="n">names</span><span class="o">=</span><span class="sh">'</span><span class="s">Time</span><span class="sh">'</span><span class="p">,</span> <span class="n">values</span><span class="o">=</span><span class="sh">'</span><span class="s">Spending</span><span class="sh">'</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="sh">"</span><span class="s">Pie Chart of Customer Spending by Time</span><span class="sh">"</span><span class="p">,</span>
             <span class="n">labels</span><span class="o">=</span><span class="p">{</span><span class="sh">'</span><span class="s">Time</span><span class="sh">'</span><span class="p">:</span> <span class="sh">'</span><span class="s">समय</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">Spending</span><span class="sh">'</span><span class="p">:</span> <span class="sh">'</span><span class="s">खर्च (डलरमा)</span><span class="sh">'</span><span class="p">})</span>

<span class="c1"># ग्राफ देखाउने
</span><span class="n">fig</span><span class="p">.</span><span class="nf">show</span><span class="p">()</span>

</code></pre></div></div>]]></content><author><name>Anish Bhattarai</name></author><summary type="html"><![CDATA[पाइथन प्लटी एक्सप्रेस मा विभिन्न ग्राफहरू जस्तै स्क्याटर प्लट, लाइन प्लट, बार चार्ट, हिस्टोग्राम, बक्स प्लट, डेनसिटी हीटम्याप, र पाई चार्ट प्रयोग गरेर दुई वा बढी भेरिएबलहरूको सम्बन्ध, समयसँगको परिवर्तन, क्याटेगोरिकल डाटाको तुलना, वितरण, र अनुपातको विश्लेषण गर्न सकिन्छ। उदाहरणका रूपमा, दिउसो न्युरोड गल्लीमा हुने व्यापारलाई अनुमान गर्न, तापमान र ग्राहक खर्चका बीचको सम्बन्धलाई स्क्याटर प्लटमा देखाउन सकिन्छ, दिनको समयमा ग्राहक खर्चको परिवर्तनलाई लाइन प्लटमा देखाउन सकिन्छ, र विभिन्न समय अवधिमा भएका बिक्रीलाई बार चार्टमा तुलना गर्न सकिन्छ। यसरी, विभिन्न चार्टहरू प्रयोग गरेर व्यापारका डाटाको विश्लेषण गर्न सकिन्छ र भविष्यका ट्रेन्ड र व्यावसायिक निर्णयहरूमा मद्दत गर्न सकिन्छ।]]></summary></entry><entry><title type="html">JSON डाटा बाट PDF फाईल बनाउने तरिका</title><link href="https://www.enepal.net.np//2024/08/09/create-dynamic-pdf.html" rel="alternate" type="text/html" title="JSON डाटा बाट PDF फाईल बनाउने तरिका" /><published>2024-08-09T18:53:12+00:00</published><updated>2024-08-09T18:53:12+00:00</updated><id>https://www.enepal.net.np//2024/08/09/create-dynamic-pdf</id><content type="html" xml:base="https://www.enepal.net.np//2024/08/09/create-dynamic-pdf.html"><![CDATA[<p>तपाईंले दिएको कोडले एउटा इन्टरएक्टिव PDF फर्म क्रियट गर्ने गर्न गर्दछ । यसमा विभिन्न प्रश्नहरू छन त्यस प्रश्नको ठ्याक्क मुनी २ वटा टेक्स्ट बक्सहरू छन । यसले ReportLab लाईब्रेरीको प्रयोग गरी PDF फाइल बनाउँछ, जसमा शीर्षक, अप्सन, र उत्तरका लागि टेक्स्ट बक्सहरू समावेश गरीएको छ ।</p>

<blockquote>
  <p>यहाँ मुख्य काम भनेको create_pdf_form भन्ने फङ्गसन हो, जसले JSON डेटा लोड गर्छ र त्यसलाई PDF मा रूपान्तरण गर्छ । यसमा विभिन्न प्रश्नहरूको लागि क्रमबद्ध शीर्षक र अप्सनहरुहरू राखिएको छ, र प्रत्येक प्रश्नको लागि दुई वटा टेक्स्ट बक्सहरू बनाईएको छ । एउटा टेक्स्ट बक्समा प्रश्नको अर्थ लेख्न सोधेको छ भने अर्कोमा उत्तर।</p>
</blockquote>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="err">!</span><span class="n">pip</span> <span class="n">install</span> <span class="n">reportlab</span>
<span class="kn">from</span> <span class="n">reportlab.pdfgen</span> <span class="kn">import</span> <span class="n">canvas</span>
<span class="kn">from</span> <span class="n">reportlab.lib.pagesizes</span> <span class="kn">import</span> <span class="n">A4</span>
<span class="kn">from</span> <span class="n">reportlab.pdfbase</span> <span class="kn">import</span> <span class="n">pdfform</span>
<span class="kn">from</span> <span class="n">reportlab.lib.colors</span> <span class="kn">import</span> <span class="n">black</span><span class="p">,</span> <span class="n">lightgrey</span>
<span class="kn">from</span> <span class="n">reportlab.lib.styles</span> <span class="kn">import</span> <span class="n">getSampleStyleSheet</span><span class="p">,</span> <span class="n">ParagraphStyle</span>
<span class="kn">from</span> <span class="n">reportlab.platypus</span> <span class="kn">import</span> <span class="n">Paragraph</span>
<span class="kn">from</span> <span class="n">reportlab.lib.units</span> <span class="kn">import</span> <span class="n">mm</span>
<span class="kn">import</span> <span class="n">json</span>

<span class="k">def</span> <span class="nf">create_pdf_form</span><span class="p">(</span><span class="n">json_data</span><span class="p">,</span> <span class="n">output_filename</span><span class="p">):</span>
    <span class="n">c</span> <span class="o">=</span> <span class="n">canvas</span><span class="p">.</span><span class="nc">Canvas</span><span class="p">(</span><span class="n">output_filename</span><span class="p">,</span> <span class="n">pagesize</span><span class="o">=</span><span class="n">A4</span><span class="p">)</span>
    <span class="n">width</span><span class="p">,</span> <span class="n">height</span> <span class="o">=</span> <span class="n">A4</span>

    <span class="c1"># Define styles
</span>    <span class="n">styles</span> <span class="o">=</span> <span class="nf">getSampleStyleSheet</span><span class="p">()</span>
    <span class="n">normal_style</span> <span class="o">=</span> <span class="nc">ParagraphStyle</span><span class="p">(</span><span class="sh">'</span><span class="s">Normal</span><span class="sh">'</span><span class="p">,</span> <span class="n">fontName</span><span class="o">=</span><span class="sh">'</span><span class="s">Helvetica</span><span class="sh">'</span><span class="p">,</span> <span class="n">fontSize</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">leading</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>
    <span class="n">title_style</span> <span class="o">=</span> <span class="nc">ParagraphStyle</span><span class="p">(</span><span class="sh">'</span><span class="s">Title</span><span class="sh">'</span><span class="p">,</span> <span class="n">fontName</span><span class="o">=</span><span class="sh">'</span><span class="s">Helvetica-Bold</span><span class="sh">'</span><span class="p">,</span> <span class="n">fontSize</span><span class="o">=</span><span class="mi">14</span><span class="p">,</span> <span class="n">leading</span><span class="o">=</span><span class="mi">18</span><span class="p">,</span> <span class="n">spaceAfter</span><span class="o">=</span><span class="mi">6</span><span class="p">)</span>

    <span class="c1"># Define margins
</span>    <span class="n">left_margin</span> <span class="o">=</span> <span class="mi">20</span><span class="o">*</span><span class="n">mm</span>
    <span class="n">right_margin</span> <span class="o">=</span> <span class="n">width</span> <span class="o">-</span> <span class="mi">20</span><span class="o">*</span><span class="n">mm</span>
    <span class="n">top_margin</span> <span class="o">=</span> <span class="n">height</span> <span class="o">-</span> <span class="mi">30</span><span class="o">*</span><span class="n">mm</span>
    <span class="n">bottom_margin</span> <span class="o">=</span> <span class="mi">20</span><span class="o">*</span><span class="n">mm</span>
    <span class="n">y</span> <span class="o">=</span> <span class="n">top_margin</span>

    <span class="n">field_counter</span> <span class="o">=</span> <span class="mi">0</span>

    <span class="c1"># Add a header to each page
</span>    <span class="k">def</span> <span class="nf">header</span><span class="p">(</span><span class="n">canvas</span><span class="p">,</span> <span class="n">doc</span><span class="p">):</span>
        <span class="n">canvas</span><span class="p">.</span><span class="nf">saveState</span><span class="p">()</span>
        <span class="n">canvas</span><span class="p">.</span><span class="nf">setFont</span><span class="p">(</span><span class="sh">'</span><span class="s">Helvetica-Bold</span><span class="sh">'</span><span class="p">,</span> <span class="mi">16</span><span class="p">)</span>
        <span class="n">canvas</span><span class="p">.</span><span class="nf">drawString</span><span class="p">(</span><span class="n">left_margin</span><span class="p">,</span> <span class="n">top_margin</span> <span class="o">+</span> <span class="mi">10</span><span class="o">*</span><span class="n">mm</span><span class="p">,</span> <span class="sh">"</span><span class="s">Patient Data Form</span><span class="sh">"</span><span class="p">)</span>
        <span class="n">canvas</span><span class="p">.</span><span class="nf">setStrokeColor</span><span class="p">(</span><span class="n">lightgrey</span><span class="p">)</span>
        <span class="n">canvas</span><span class="p">.</span><span class="nf">setLineWidth</span><span class="p">(</span><span class="mf">0.5</span><span class="p">)</span>
        <span class="n">canvas</span><span class="p">.</span><span class="nf">line</span><span class="p">(</span><span class="n">left_margin</span><span class="p">,</span> <span class="n">top_margin</span> <span class="o">+</span> <span class="mi">7</span><span class="o">*</span><span class="n">mm</span><span class="p">,</span> <span class="n">right_margin</span><span class="p">,</span> <span class="n">top_margin</span> <span class="o">+</span> <span class="mi">7</span><span class="o">*</span><span class="n">mm</span><span class="p">)</span>
        <span class="n">canvas</span><span class="p">.</span><span class="nf">restoreState</span><span class="p">()</span>

    <span class="nf">header</span><span class="p">(</span><span class="n">c</span><span class="p">,</span> <span class="bp">None</span><span class="p">)</span>

    <span class="k">def</span> <span class="nf">draw_text_with_options</span><span class="p">(</span><span class="n">index</span><span class="p">,</span> <span class="n">title</span><span class="p">,</span> <span class="n">options</span><span class="p">):</span>
        <span class="k">nonlocal</span> <span class="n">y</span>
        <span class="c1"># Check if we need to start a new page
</span>        <span class="k">if</span> <span class="n">y</span> <span class="o">&lt;</span> <span class="n">bottom_margin</span> <span class="o">+</span> <span class="mi">80</span><span class="o">*</span><span class="n">mm</span><span class="p">:</span>
            <span class="n">c</span><span class="p">.</span><span class="nf">showPage</span><span class="p">()</span>
            <span class="n">y</span> <span class="o">=</span> <span class="n">top_margin</span>
            <span class="nf">header</span><span class="p">(</span><span class="n">c</span><span class="p">,</span> <span class="bp">None</span><span class="p">)</span>

        <span class="c1"># Draw serial number and title
</span>        <span class="n">title_text</span> <span class="o">=</span> <span class="sa">f</span><span class="sh">"</span><span class="si">{</span><span class="n">index</span><span class="si">}</span><span class="s">. </span><span class="si">{</span><span class="n">title</span><span class="si">}</span><span class="sh">"</span>
        <span class="n">title_paragraph</span> <span class="o">=</span> <span class="nc">Paragraph</span><span class="p">(</span><span class="n">title_text</span><span class="p">,</span> <span class="n">title_style</span><span class="p">)</span>
        <span class="n">title_paragraph</span><span class="p">.</span><span class="nf">wrap</span><span class="p">(</span><span class="n">right_margin</span> <span class="o">-</span> <span class="n">left_margin</span><span class="p">,</span> <span class="mi">20</span><span class="o">*</span><span class="n">mm</span><span class="p">)</span>
        <span class="n">title_paragraph</span><span class="p">.</span><span class="nf">drawOn</span><span class="p">(</span><span class="n">c</span><span class="p">,</span> <span class="n">left_margin</span><span class="p">,</span> <span class="n">y</span> <span class="o">-</span> <span class="mi">6</span><span class="o">*</span><span class="n">mm</span><span class="p">)</span>
        <span class="n">y</span> <span class="o">-=</span> <span class="n">title_paragraph</span><span class="p">.</span><span class="n">height</span> <span class="o">+</span> <span class="mi">4</span><span class="o">*</span><span class="n">mm</span>

        <span class="c1"># Draw options
</span>        <span class="k">if</span> <span class="n">options</span><span class="p">:</span>
            <span class="k">for</span> <span class="n">option</span> <span class="ow">in</span> <span class="n">options</span><span class="p">:</span>
                <span class="n">option_paragraph</span> <span class="o">=</span> <span class="nc">Paragraph</span><span class="p">(</span><span class="sa">f</span><span class="sh">"</span><span class="s">• </span><span class="si">{</span><span class="n">option</span><span class="si">}</span><span class="sh">"</span><span class="p">,</span> <span class="n">normal_style</span><span class="p">)</span>
                <span class="n">option_paragraph</span><span class="p">.</span><span class="nf">wrap</span><span class="p">(</span><span class="n">right_margin</span> <span class="o">-</span> <span class="n">left_margin</span> <span class="o">-</span> <span class="mi">10</span><span class="o">*</span><span class="n">mm</span><span class="p">,</span> <span class="mi">20</span><span class="o">*</span><span class="n">mm</span><span class="p">)</span>
                <span class="n">option_paragraph</span><span class="p">.</span><span class="nf">drawOn</span><span class="p">(</span><span class="n">c</span><span class="p">,</span> <span class="n">left_margin</span> <span class="o">+</span> <span class="mi">5</span><span class="o">*</span><span class="n">mm</span><span class="p">,</span> <span class="n">y</span> <span class="o">-</span> <span class="mi">5</span><span class="o">*</span><span class="n">mm</span><span class="p">)</span>
                <span class="n">y</span> <span class="o">-=</span> <span class="n">option_paragraph</span><span class="p">.</span><span class="n">height</span> <span class="o">+</span> <span class="mi">1</span><span class="o">*</span><span class="n">mm</span>
            <span class="n">y</span> <span class="o">-=</span> <span class="mi">5</span><span class="o">*</span><span class="n">mm</span>

        <span class="c1"># Add "What do you understand by this question?" text box
</span>        <span class="n">c</span><span class="p">.</span><span class="nf">setFont</span><span class="p">(</span><span class="sh">"</span><span class="s">Helvetica</span><span class="sh">"</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>
        <span class="n">c</span><span class="p">.</span><span class="nf">drawString</span><span class="p">(</span><span class="n">left_margin</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="sh">"</span><span class="s">What do you understand by this question?</span><span class="sh">"</span><span class="p">)</span>
        <span class="n">y</span> <span class="o">-=</span> <span class="mi">7</span><span class="o">*</span><span class="n">mm</span>
        <span class="n">field_name</span> <span class="o">=</span> <span class="sa">f</span><span class="sh">"</span><span class="s">understand_</span><span class="si">{</span><span class="n">field_counter</span><span class="si">}</span><span class="sh">"</span>
        <span class="n">pdfform</span><span class="p">.</span><span class="nf">textFieldRelative</span><span class="p">(</span><span class="n">c</span><span class="p">,</span> <span class="n">field_name</span><span class="p">,</span> <span class="n">left_margin</span><span class="p">,</span> <span class="n">y</span> <span class="o">-</span> <span class="mi">20</span><span class="o">*</span><span class="n">mm</span><span class="p">,</span> <span class="n">right_margin</span> <span class="o">-</span> <span class="n">left_margin</span><span class="p">,</span> <span class="mi">20</span><span class="o">*</span><span class="n">mm</span><span class="p">)</span>
        <span class="n">y</span> <span class="o">-=</span> <span class="mi">25</span><span class="o">*</span><span class="n">mm</span>

        <span class="c1"># Add "Source of the Information (Answer)" text box
</span>        <span class="n">c</span><span class="p">.</span><span class="nf">drawString</span><span class="p">(</span><span class="n">left_margin</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="sh">"</span><span class="s">Source of the Information (Answer)</span><span class="sh">"</span><span class="p">)</span>
        <span class="n">y</span> <span class="o">-=</span> <span class="mi">7</span><span class="o">*</span><span class="n">mm</span>
        <span class="n">field_name</span> <span class="o">=</span> <span class="sa">f</span><span class="sh">"</span><span class="s">source_</span><span class="si">{</span><span class="n">field_counter</span><span class="si">}</span><span class="sh">"</span>
        <span class="n">pdfform</span><span class="p">.</span><span class="nf">textFieldRelative</span><span class="p">(</span><span class="n">c</span><span class="p">,</span> <span class="n">field_name</span><span class="p">,</span> <span class="n">left_margin</span><span class="p">,</span> <span class="n">y</span> <span class="o">-</span> <span class="mi">20</span><span class="o">*</span><span class="n">mm</span><span class="p">,</span> <span class="n">right_margin</span> <span class="o">-</span> <span class="n">left_margin</span><span class="p">,</span> <span class="mi">20</span><span class="o">*</span><span class="n">mm</span><span class="p">)</span>
        <span class="n">y</span> <span class="o">-=</span> <span class="mi">35</span><span class="o">*</span><span class="n">mm</span>

        <span class="c1"># Draw a light gray line between questions
</span>        <span class="n">c</span><span class="p">.</span><span class="nf">setStrokeColor</span><span class="p">(</span><span class="n">lightgrey</span><span class="p">)</span>
        <span class="n">c</span><span class="p">.</span><span class="nf">setLineWidth</span><span class="p">(</span><span class="mf">0.5</span><span class="p">)</span>
        <span class="n">c</span><span class="p">.</span><span class="nf">line</span><span class="p">(</span><span class="n">left_margin</span><span class="p">,</span> <span class="n">y</span> <span class="o">+</span> <span class="mi">5</span><span class="o">*</span><span class="n">mm</span><span class="p">,</span> <span class="n">right_margin</span><span class="p">,</span> <span class="n">y</span> <span class="o">+</span> <span class="mi">5</span><span class="o">*</span><span class="n">mm</span><span class="p">)</span>
        <span class="n">c</span><span class="p">.</span><span class="nf">setStrokeColor</span><span class="p">(</span><span class="n">black</span><span class="p">)</span>

    <span class="c1"># Process each item in JSON data
</span>    <span class="k">for</span> <span class="n">index</span><span class="p">,</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span> <span class="ow">in</span> <span class="nf">enumerate</span><span class="p">(</span><span class="n">json_data</span><span class="p">.</span><span class="nf">items</span><span class="p">(),</span> <span class="mi">1</span><span class="p">):</span>
        <span class="n">title</span> <span class="o">=</span> <span class="n">value</span><span class="p">.</span><span class="nf">get</span><span class="p">(</span><span class="sh">'</span><span class="s">title</span><span class="sh">'</span><span class="p">,</span> <span class="n">key</span><span class="p">)</span>
        <span class="n">options</span> <span class="o">=</span> <span class="n">value</span><span class="p">.</span><span class="nf">get</span><span class="p">(</span><span class="sh">'</span><span class="s">options</span><span class="sh">'</span><span class="p">,</span> <span class="p">[])</span>
        <span class="nf">draw_text_with_options</span><span class="p">(</span><span class="n">index</span><span class="p">,</span> <span class="n">title</span><span class="p">,</span> <span class="n">options</span><span class="p">)</span>
        <span class="n">field_counter</span> <span class="o">+=</span> <span class="mi">1</span>

    <span class="n">c</span><span class="p">.</span><span class="nf">save</span><span class="p">()</span>

<span class="c1"># Load the JSON data
</span><span class="k">with</span> <span class="nf">open</span><span class="p">(</span><span class="sh">'</span><span class="s">data.json</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">r</span><span class="sh">'</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
    <span class="n">json_data</span> <span class="o">=</span> <span class="n">json</span><span class="p">.</span><span class="nf">load</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>

<span class="c1"># Create the PDF form
</span><span class="nf">create_pdf_form</span><span class="p">(</span><span class="n">json_data</span><span class="p">,</span> <span class="sh">'</span><span class="s">patient_form.pdf</span><span class="sh">'</span><span class="p">)</span>

<span class="nf">print</span><span class="p">(</span><span class="sh">"</span><span class="s">PDF form created successfully!</span><span class="sh">"</span><span class="p">)</span>


</code></pre></div></div>
<p>यो चाँही डाटा (data.json) हो ।</p>

<div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">{</span><span class="w">
  </span><span class="nl">"systemLocation"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
    </span><span class="nl">"title"</span><span class="p">:</span><span class="w"> </span><span class="s2">"System Location"</span><span class="p">,</span><span class="w">
    </span><span class="nl">"options"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
      </span><span class="s2">"US-East"</span><span class="p">,</span><span class="w">
      </span><span class="s2">"US-West"</span><span class="p">,</span><span class="w">
      </span><span class="s2">"EU-Central"</span><span class="p">,</span><span class="w">
      </span><span class="s2">"AP-Southeast"</span><span class="p">,</span><span class="w">
      </span><span class="s2">"Other (specify manually)"</span><span class="w">
    </span><span class="p">],</span><span class="w">
    </span><span class="nl">"dependencies"</span><span class="p">:</span><span class="w"> </span><span class="p">[],</span><span class="w">
    </span><span class="nl">"explanation"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Which server or data center is the system located in?"</span><span class="w">
  </span><span class="p">},</span><span class="w">
  </span><span class="nl">"dateOfDeployment"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
    </span><span class="nl">"title"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Date of Deployment"</span><span class="p">,</span><span class="w">
    </span><span class="nl">"value"</span><span class="p">:</span><span class="w"> </span><span class="s2">""</span><span class="p">,</span><span class="w">
    </span><span class="nl">"dependencies"</span><span class="p">:</span><span class="w"> </span><span class="p">[],</span><span class="w">
    </span><span class="nl">"explanation"</span><span class="p">:</span><span class="w"> </span><span class="s2">"When was the application or service deployed?"</span><span class="w">
  </span><span class="p">},</span><span class="w">
  </span><span class="nl">"userType"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
    </span><span class="nl">"title"</span><span class="p">:</span><span class="w"> </span><span class="s2">"User Type"</span><span class="p">,</span><span class="w">
    </span><span class="nl">"options"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">"NEW"</span><span class="p">,</span><span class="w"> </span><span class="s2">"RETURNING"</span><span class="p">],</span><span class="w">
    </span><span class="nl">"dependencies"</span><span class="p">:</span><span class="w"> </span><span class="p">[],</span><span class="w">
    </span><span class="nl">"explanation"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Is the user a new registrant or a returning user?"</span><span class="w">
  </span><span class="p">},</span><span class="w">
  </span><span class="nl">"accessMethod"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
    </span><span class="nl">"title"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Access Method"</span><span class="p">,</span><span class="w">
    </span><span class="nl">"options"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">"ON-SITE"</span><span class="p">,</span><span class="w"> </span><span class="s2">"REMOTE"</span><span class="p">],</span><span class="w">
    </span><span class="nl">"dependencies"</span><span class="p">:</span><span class="w"> </span><span class="p">[],</span><span class="w">
    </span><span class="nl">"explanation"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Is the user accessing the system on-site or remotely?"</span><span class="w">
  </span><span class="p">},</span><span class="w">
  </span><span class="nl">"systemAdministrator"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
    </span><span class="nl">"title"</span><span class="p">:</span><span class="w"> </span><span class="s2">"System Administrator"</span><span class="p">,</span><span class="w">
    </span><span class="nl">"options"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
      </span><span class="s2">"SYSTEM ADMINISTRATOR"</span><span class="p">,</span><span class="w">
      </span><span class="s2">"NETWORK ENGINEER"</span><span class="p">,</span><span class="w">
      </span><span class="s2">"CLOUD ENGINEER"</span><span class="p">,</span><span class="w">
      </span><span class="s2">"DEVOPS SPECIALIST"</span><span class="p">,</span><span class="w">
      </span><span class="s2">"OTHER (SPECIFY MANUALLY)"</span><span class="w">
    </span><span class="p">],</span><span class="w">
    </span><span class="nl">"dependencies"</span><span class="p">:</span><span class="w"> </span><span class="p">[],</span><span class="w">
    </span><span class="nl">"explanation"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Which type of IT professional is managing the system?"</span><span class="w">
  </span><span class="p">},</span><span class="w">
  </span><span class="nl">"operatingSystem"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
    </span><span class="nl">"title"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Operating System"</span><span class="p">,</span><span class="w">
    </span><span class="nl">"options"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">"LINUX"</span><span class="p">,</span><span class="w"> </span><span class="s2">"WINDOWS"</span><span class="p">,</span><span class="w"> </span><span class="s2">"MACOS"</span><span class="p">,</span><span class="w"> </span><span class="s2">"OTHER (SPECIFY MANUALLY)"</span><span class="p">],</span><span class="w">
    </span><span class="nl">"dependencies"</span><span class="p">:</span><span class="w"> </span><span class="p">[],</span><span class="w">
    </span><span class="nl">"explanation"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Which operating system is running on the server?"</span><span class="w">
  </span><span class="p">},</span><span class="w">
  </span><span class="nl">"securityIncident"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
    </span><span class="nl">"title"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Security Incident"</span><span class="p">,</span><span class="w">
    </span><span class="nl">"options"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">"YES"</span><span class="p">,</span><span class="w"> </span><span class="s2">"NO"</span><span class="p">],</span><span class="w">
    </span><span class="nl">"dependencies"</span><span class="p">:</span><span class="w"> </span><span class="p">[],</span><span class="w">
    </span><span class="nl">"explanation"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Has there been a security incident reported recently?"</span><span class="w">
  </span><span class="p">}</span><span class="w">
</span><span class="p">}</span><span class="w">

</span></code></pre></div></div>]]></content><author><name>Anish Bhattarai</name></author><summary type="html"><![CDATA[तपाईंले दिएको कोडले एउटा इन्टरएक्टिव PDF फर्म क्रियट गर्ने गर्न गर्दछ । यसमा विभिन्न प्रश्नहरू छन त्यस प्रश्नको ठ्याक्क मुनी २ वटा टेक्स्ट बक्सहरू छन । यसले ReportLab लाईब्रेरीको प्रयोग गरी PDF फाइल बनाउँछ, जसमा शीर्षक, अप्सन, र उत्तरका लागि टेक्स्ट बक्सहरू समावेश गरीएको छ ।]]></summary></entry><entry><title type="html">प्रेस काउन्सिलले सुचीकृत गरेका अनलाईनहरुको बिबरण</title><link href="https://www.enepal.net.np//2024/05/17/what-python-can-do-simple-example.html" rel="alternate" type="text/html" title="प्रेस काउन्सिलले सुचीकृत गरेका अनलाईनहरुको बिबरण" /><published>2024-05-17T14:53:12+00:00</published><updated>2024-05-17T14:53:12+00:00</updated><id>https://www.enepal.net.np//2024/05/17/what-python-can-do-simple-example</id><content type="html" xml:base="https://www.enepal.net.np//2024/05/17/what-python-can-do-simple-example.html"><![CDATA[<p>युजकेस सिनारियो : नेपाल प्रेस काउन्सिलले नियमित रूपमा प्रक्रिया पुरा गरी सञ्चालनमा रहेका अनलाइन वेबसाईटहरुको नामावली प्रकाशन गर्दछ । नामावली पिडिएफ फाईलमा प्रकाशन भएको हुन्छ । जसमा वेबसाइटको ठेगाना http प्रोटोकल बिना ठ्याक्क डोमेन नेम र एक्सटेन्सन मात्र लेखिएको हुन्छ भने वेबसाइट सञ्चालकको नाम , प्रकाशन गृह (कम्पनी), मोबाइल नम्बर र इमेल ठेगाना राखिएको हुन्छ । मोबाइल नम्बर पनि कसैको २ वटा , कसैको १ वटा , कसैको मोबाइल नम्बरको सट्टामा ल्यान्ड लाइन मोबाइल नम्बर र इमेल ठेगाना कसैको २ वटा कसैको १ वटा त्यो पनि एउटा सेलमा रहेको हुन्छ । पाईथनको साहायताले हामी यो डाटा क्लिन गर्नुका साथै यसको हुईज रेकर्ड पनि तान्छौ ।  मलाई लाग्छ - यती गरी सक्दा पाईथनबाट गर्न सकिने धेरै कामको आइडिया हुन्छ - त्यसपछी हामी जसो भन्यो त्यसै गर्न सक्छौ ।</p>

<p>यसको लागि सबैभन्दा पहिले हामीले प्रेसकाउन्सिल ले उपलब्ध गराएको डाटा (जुन पिडिएफ फाईल) मा हुन्छ त्यसलाई माईक्रोसफ्ट एक्सल फर्माट (xlsx) मा एक्सपोर्ट गर्दछौ । यो ट्युटोरियल तयार गर्दा सम्मको <a href="https://www.presscouncilnepal.gov.np/np/wp-content/uploads/2024/04/Enlisted-Online-Media-till-2081-01-04.pdf">बिबरण</a> मा भेट्न सकिन्छ तर यो लिङ्क ब्रेक हुन सक्ने सम्भावना पनि उत्तिकै रहेकोले यसलाई हामी <a href="https://districts.enepal.net.np/Enlisted-Online-Media-till-2081-01-04.pdf">क्लाउड फ्लेयरमा अपलोड गरेर राखेका छौ</a> ।</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># Install necessary libraries
# !pip install tabula-py pandas
</span>
<span class="kn">import</span> <span class="n">requests</span>
<span class="kn">import</span> <span class="n">tabula</span>
<span class="kn">import</span> <span class="n">pandas</span> <span class="k">as</span> <span class="n">pd</span>

<span class="c1"># Download the PDF file
</span><span class="n">pdf_url</span> <span class="o">=</span> <span class="sh">"</span><span class="s">https://districts.enepal.net.np/Enlisted-Online-Media-till-2081-01-04.pdf</span><span class="sh">"</span>
<span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="p">.</span><span class="nf">get</span><span class="p">(</span><span class="n">pdf_url</span><span class="p">,</span> <span class="n">headers</span><span class="o">=</span><span class="p">{</span><span class="sh">'</span><span class="s">User-Agent</span><span class="sh">'</span><span class="p">:</span> <span class="sh">'</span><span class="s">Mozilla/5.0</span><span class="sh">'</span><span class="p">})</span>
<span class="n">local_pdf_path</span> <span class="o">=</span> <span class="sh">"</span><span class="s">Enlisted-Online-Media.pdf</span><span class="sh">"</span>

<span class="k">with</span> <span class="nf">open</span><span class="p">(</span><span class="n">local_pdf_path</span><span class="p">,</span> <span class="sh">'</span><span class="s">wb</span><span class="sh">'</span><span class="p">)</span> <span class="k">as</span> <span class="nb">file</span><span class="p">:</span>
    <span class="nb">file</span><span class="p">.</span><span class="nf">write</span><span class="p">(</span><span class="n">response</span><span class="p">.</span><span class="n">content</span><span class="p">)</span>

<span class="c1"># Read and combine tables from the downloaded PDF
</span><span class="n">tables</span> <span class="o">=</span> <span class="n">tabula</span><span class="p">.</span><span class="nf">read_pdf</span><span class="p">(</span><span class="n">local_pdf_path</span><span class="p">,</span> <span class="n">pages</span><span class="o">=</span><span class="sh">'</span><span class="s">all</span><span class="sh">'</span><span class="p">,</span> <span class="n">multiple_tables</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
<span class="n">combined_df</span> <span class="o">=</span> <span class="n">pd</span><span class="p">.</span><span class="nf">concat</span><span class="p">(</span><span class="n">tables</span><span class="p">,</span> <span class="n">ignore_index</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>

<span class="c1"># Write the combined DataFrame to a single sheet in the Excel file
</span><span class="n">combined_df</span><span class="p">.</span><span class="nf">to_excel</span><span class="p">(</span><span class="sh">"</span><span class="s">Enlisted-Online-Media-List-Excel.xlsx</span><span class="sh">"</span><span class="p">,</span> <span class="n">index</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
</code></pre></div></div>

<p><a href="https://districts.enepal.net.np/Enlisted-Online-Media-List-Excel.xlsx">माथीको कोडले तयार गरेेको फाईल हेर्न यहाँ क्लिक गर्नुहोस ।</a>  यसले पिडिएफ फाइललाई एक्सलमा कन्भर्ट गर्दछ । यद्यपि एक्सल फाइलको डाटाहरू भद्रगोल छन् । कतै पहिलो दुई वटा कोलम खाली छन् कुनै कुनैमा पहिलो कोलम बाट डेटा सुरु हुन्छ कुनैमा दोस्रो कोलम बाट । अब हाम्रो काम भनेको डाटालाई ठ्याक्क मिलाएर राख्नु पनि हो । डाटा एक्सलमा भएको हुनाले तपाई आफ्नो इच्छा अनुसार यसलाई म्यान वली पनि गर्न सक्नु हुन्छ । तर हामी पाईथन सिक्दै गरेको हुनाले यो काम पाईथन कोड लेखेर गर्छौ ।</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="n">pandas</span> <span class="k">as</span> <span class="n">pd</span>

<span class="c1"># Read the Excel file
</span><span class="n">df</span> <span class="o">=</span> <span class="n">pd</span><span class="p">.</span><span class="nf">read_excel</span><span class="p">(</span><span class="sh">"</span><span class="s">Enlisted-Online-Media-List-Excel.xlsx</span><span class="sh">"</span><span class="p">)</span>

<span class="c1"># Function to shift non-empty cells to the left in each row
</span><span class="k">def</span> <span class="nf">shift_cells</span><span class="p">(</span><span class="n">row</span><span class="p">):</span>
    <span class="n">shifted_row</span> <span class="o">=</span> <span class="n">row</span><span class="p">[</span><span class="n">row</span><span class="p">.</span><span class="nf">notnull</span><span class="p">()].</span><span class="nf">tolist</span><span class="p">()</span>
    <span class="n">shifted_row</span><span class="p">.</span><span class="nf">extend</span><span class="p">([</span><span class="bp">None</span><span class="p">]</span> <span class="o">*</span> <span class="p">(</span><span class="nf">len</span><span class="p">(</span><span class="n">row</span><span class="p">)</span> <span class="o">-</span> <span class="nf">len</span><span class="p">(</span><span class="n">shifted_row</span><span class="p">)))</span>
    <span class="k">return</span> <span class="n">pd</span><span class="p">.</span><span class="nc">Series</span><span class="p">(</span><span class="n">shifted_row</span><span class="p">,</span> <span class="n">index</span><span class="o">=</span><span class="n">row</span><span class="p">.</span><span class="n">index</span><span class="p">)</span>

<span class="c1"># Shift cells in each row
</span><span class="n">df</span> <span class="o">=</span> <span class="n">df</span><span class="p">.</span><span class="nf">apply</span><span class="p">(</span><span class="n">shift_cells</span><span class="p">,</span> <span class="n">axis</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>

<span class="c1"># Write the modified DataFrame to a new Excel file
</span><span class="n">df</span><span class="p">.</span><span class="nf">to_excel</span><span class="p">(</span><span class="sh">"</span><span class="s">shift-non-empty-cells-to-the-left.xlsx</span><span class="sh">"</span><span class="p">,</span> <span class="n">index</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
</code></pre></div></div>

<p><a href="https://districts.enepal.net.np/shift-non-empty-cells-to-the-left.xlsx">माथीको कोडले तयार गरेेको फाईल हेर्न यहाँ क्लिक गर्नुहोस ।</a> यसल प्रत्येक row भएका non-empty cells लाई बायाँतिर सर्छ र empty cells लाई दायाँतिर पठाउँछ।</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="n">pandas</span> <span class="k">as</span> <span class="n">pd</span>

<span class="c1"># Read the Excel file
</span><span class="n">df</span> <span class="o">=</span> <span class="n">pd</span><span class="p">.</span><span class="nf">read_excel</span><span class="p">(</span><span class="sh">"</span><span class="s">shift-non-empty-cells-to-the-left.xlsx</span><span class="sh">"</span><span class="p">)</span>

<span class="c1"># Drop rows where the third column (index 2 in zero-based indexing) is empty
</span><span class="n">df</span> <span class="o">=</span> <span class="n">df</span><span class="p">.</span><span class="nf">dropna</span><span class="p">(</span><span class="n">subset</span><span class="o">=</span><span class="p">[</span><span class="n">df</span><span class="p">.</span><span class="n">columns</span><span class="p">[</span><span class="mi">4</span><span class="p">]])</span>

<span class="c1"># Write the modified DataFrame to a new Excel file
</span><span class="n">df</span><span class="p">.</span><span class="nf">to_excel</span><span class="p">(</span><span class="sh">"</span><span class="s">drop-rows-where-the-third-column(zero-based indexing)-is-empty.xlsx</span><span class="sh">"</span><span class="p">,</span> <span class="n">index</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
</code></pre></div></div>

<p><a href="https://districts.enepal.net.np/drop-rows-where-the-third-column(zero-based indexing)-is-empty.xlsx">माथीको कोडले तयार गरेेको फाईल हेर्न यहाँ क्लिक गर्नुहोस ।</a>  माथिको कोडले यदि कुनै रो (row) मा वेब ठेगाना छैन भने त्यो रो (row) पुरै डिलिट गर्दिन्छ । पिडिएफ बाट एक्सलमा कन्भर्ट गर्ने क्रममा खाली रो हरू आएका पनि हुन सक्छन । हामीले माथी जेनेरेट गरेको फाईलमा चौथो कोलममा युआरएल छन ।</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="n">pandas</span> <span class="k">as</span> <span class="n">pd</span>

<span class="n">file_path</span> <span class="o">=</span> <span class="sh">'</span><span class="s">drop-rows-where-the-third-column(zero-based indexing)-is-empty.xlsx</span><span class="sh">'</span>

<span class="c1"># Load the Excel file into a DataFrame
</span><span class="n">df</span> <span class="o">=</span> <span class="n">pd</span><span class="p">.</span><span class="nf">read_excel</span><span class="p">(</span><span class="n">file_path</span><span class="p">)</span>

<span class="c1"># Define a list of shifts with row range and direction (left or right)
</span><span class="n">shifts</span> <span class="o">=</span> <span class="p">[</span>
    <span class="p">(</span><span class="nf">range</span><span class="p">(</span><span class="mi">1986</span><span class="p">,</span> <span class="mi">1992</span><span class="p">),</span> <span class="sh">'</span><span class="s">right</span><span class="sh">'</span><span class="p">),</span>  <span class="c1"># Range of rows
</span>    <span class="p">(</span><span class="nf">range</span><span class="p">(</span><span class="mi">1993</span><span class="p">,</span> <span class="mi">1996</span><span class="p">),</span> <span class="sh">'</span><span class="s">right</span><span class="sh">'</span><span class="p">),</span>  <span class="c1"># Range of rows
</span>    <span class="p">(</span><span class="nf">range</span><span class="p">(</span><span class="mi">1998</span><span class="p">,</span> <span class="mi">2010</span><span class="p">),</span> <span class="sh">'</span><span class="s">right</span><span class="sh">'</span><span class="p">),</span>  <span class="c1"># Range of rows
</span>    <span class="p">(</span><span class="nf">range</span><span class="p">(</span><span class="mi">2011</span><span class="p">,</span> <span class="mi">2014</span><span class="p">),</span> <span class="sh">'</span><span class="s">right</span><span class="sh">'</span><span class="p">),</span>  <span class="c1"># Range of rows
</span>    <span class="p">(</span><span class="nf">range</span><span class="p">(</span><span class="mi">2015</span><span class="p">,</span> <span class="mi">2019</span><span class="p">),</span> <span class="sh">'</span><span class="s">right</span><span class="sh">'</span><span class="p">),</span>  <span class="c1"># Range of rows
</span>    <span class="p">(</span><span class="mi">37</span><span class="p">,</span> <span class="sh">'</span><span class="s">right</span><span class="sh">'</span><span class="p">)</span>  <span class="c1"># Individual row
</span><span class="p">]</span>

<span class="k">for</span> <span class="n">shift</span> <span class="ow">in</span> <span class="n">shifts</span><span class="p">:</span>
    <span class="n">rows</span><span class="p">,</span> <span class="n">direction</span> <span class="o">=</span> <span class="n">shift</span>
    <span class="k">if</span> <span class="nf">isinstance</span><span class="p">(</span><span class="n">rows</span><span class="p">,</span> <span class="nb">range</span><span class="p">):</span>
        <span class="k">for</span> <span class="n">row</span> <span class="ow">in</span> <span class="n">rows</span><span class="p">:</span>
            <span class="k">if</span> <span class="n">direction</span> <span class="o">==</span> <span class="sh">'</span><span class="s">left</span><span class="sh">'</span><span class="p">:</span>
                <span class="n">df</span><span class="p">.</span><span class="n">iloc</span><span class="p">[</span><span class="n">row</span><span class="p">,</span> <span class="p">:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">df</span><span class="p">.</span><span class="n">iloc</span><span class="p">[</span><span class="n">row</span><span class="p">,</span> <span class="mi">1</span><span class="p">:].</span><span class="n">values</span>
                <span class="n">df</span><span class="p">.</span><span class="n">iloc</span><span class="p">[</span><span class="n">row</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="bp">None</span>  <span class="c1"># Optional: clear the last cell
</span>            <span class="k">elif</span> <span class="n">direction</span> <span class="o">==</span> <span class="sh">'</span><span class="s">right</span><span class="sh">'</span><span class="p">:</span>
                <span class="n">df</span><span class="p">.</span><span class="n">iloc</span><span class="p">[</span><span class="n">row</span><span class="p">,</span> <span class="mi">1</span><span class="p">:]</span> <span class="o">=</span> <span class="n">df</span><span class="p">.</span><span class="n">iloc</span><span class="p">[</span><span class="n">row</span><span class="p">,</span> <span class="p">:</span><span class="o">-</span><span class="mi">1</span><span class="p">].</span><span class="n">values</span>
                <span class="n">df</span><span class="p">.</span><span class="n">iloc</span><span class="p">[</span><span class="n">row</span><span class="p">,</span> <span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="bp">None</span>  <span class="c1"># Optional: clear the first cell
</span>    <span class="k">else</span><span class="p">:</span>
        <span class="n">row</span> <span class="o">=</span> <span class="n">rows</span>
        <span class="k">if</span> <span class="n">direction</span> <span class="o">==</span> <span class="sh">'</span><span class="s">left</span><span class="sh">'</span><span class="p">:</span>
            <span class="n">df</span><span class="p">.</span><span class="n">iloc</span><span class="p">[</span><span class="n">row</span><span class="p">,</span> <span class="p">:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">df</span><span class="p">.</span><span class="n">iloc</span><span class="p">[</span><span class="n">row</span><span class="p">,</span> <span class="mi">1</span><span class="p">:].</span><span class="n">values</span>
            <span class="n">df</span><span class="p">.</span><span class="n">iloc</span><span class="p">[</span><span class="n">row</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="bp">None</span>  <span class="c1"># Optional: clear the last cell
</span>        <span class="k">elif</span> <span class="n">direction</span> <span class="o">==</span> <span class="sh">'</span><span class="s">right</span><span class="sh">'</span><span class="p">:</span>
            <span class="n">df</span><span class="p">.</span><span class="n">iloc</span><span class="p">[</span><span class="n">row</span><span class="p">,</span> <span class="mi">1</span><span class="p">:]</span> <span class="o">=</span> <span class="n">df</span><span class="p">.</span><span class="n">iloc</span><span class="p">[</span><span class="n">row</span><span class="p">,</span> <span class="p">:</span><span class="o">-</span><span class="mi">1</span><span class="p">].</span><span class="n">values</span>
            <span class="n">df</span><span class="p">.</span><span class="n">iloc</span><span class="p">[</span><span class="n">row</span><span class="p">,</span> <span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="bp">None</span>  <span class="c1"># Optional: clear the first cell
</span>
<span class="c1"># Save the modified DataFrame to a new Excel file
</span><span class="n">df</span><span class="p">.</span><span class="nf">to_excel</span><span class="p">(</span><span class="sh">'</span><span class="s">shift-the-entire-row-left-or-right.xlsx</span><span class="sh">'</span><span class="p">,</span> <span class="n">index</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
</code></pre></div></div>

<p><a href="https://districts.enepal.net.np/shift-the-entire-row-left-or-right.xlsx">माथीको कोडले तयार गरेेको फाईल हेर्न यहाँ क्लिक गर्नुहोस ।</a> माथीको कोडले एउटै कोलममा नपरेका डाटाहरुलाई एउटै कोलममा सार्ने काम गर्दछ ।</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># Install necessary libraries
# pip install openpyxl
</span>    
<span class="kn">from</span> <span class="n">openpyxl</span> <span class="kn">import</span> <span class="n">load_workbook</span>

<span class="c1"># Load the Excel file
</span><span class="n">wb</span> <span class="o">=</span> <span class="nf">load_workbook</span><span class="p">(</span><span class="sh">'</span><span class="s">shift-the-entire-row-left-or-right.xlsx</span><span class="sh">'</span><span class="p">)</span>
<span class="n">ws</span> <span class="o">=</span> <span class="n">wb</span><span class="p">.</span><span class="n">active</span>

<span class="c1"># Define a mapping for Kantipur numbers to English numbers
</span><span class="n">kantipur_to_english</span> <span class="o">=</span> <span class="p">{</span>
    <span class="sh">'</span><span class="s">)</span><span class="sh">'</span><span class="p">:</span> <span class="sh">'</span><span class="s">0</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">!</span><span class="sh">'</span><span class="p">:</span> <span class="sh">'</span><span class="s">1</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">@</span><span class="sh">'</span><span class="p">:</span> <span class="sh">'</span><span class="s">2</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">#</span><span class="sh">'</span><span class="p">:</span> <span class="sh">'</span><span class="s">3</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">$</span><span class="sh">'</span><span class="p">:</span> <span class="sh">'</span><span class="s">4</span><span class="sh">'</span><span class="p">,</span>
    <span class="sh">'</span><span class="s">%</span><span class="sh">'</span><span class="p">:</span> <span class="sh">'</span><span class="s">5</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">^</span><span class="sh">'</span><span class="p">:</span> <span class="sh">'</span><span class="s">6</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">&amp;</span><span class="sh">'</span><span class="p">:</span> <span class="sh">'</span><span class="s">7</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">*</span><span class="sh">'</span><span class="p">:</span> <span class="sh">'</span><span class="s">8</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">(</span><span class="sh">'</span><span class="p">:</span> <span class="sh">'</span><span class="s">9</span><span class="sh">'</span><span class="p">,</span>
<span class="p">}</span>

<span class="c1"># Iterate over all cells in the 'MOBILE' column and convert Kantipur numbers to English numbers
</span><span class="k">for</span> <span class="n">row</span> <span class="ow">in</span> <span class="n">ws</span><span class="p">.</span><span class="nf">iter_rows</span><span class="p">(</span><span class="n">min_row</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">max_row</span><span class="o">=</span><span class="n">ws</span><span class="p">.</span><span class="n">max_row</span><span class="p">,</span> <span class="n">min_col</span><span class="o">=</span><span class="mi">8</span><span class="p">,</span> <span class="n">max_col</span><span class="o">=</span><span class="mi">8</span><span class="p">):</span>  <span class="c1"># Assuming 'MOBILE' is the 9th column
</span>    <span class="k">for</span> <span class="n">cell</span> <span class="ow">in</span> <span class="n">row</span><span class="p">:</span>
        <span class="k">if</span> <span class="nf">isinstance</span><span class="p">(</span><span class="n">cell</span><span class="p">.</span><span class="n">value</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
            <span class="n">converted_chars</span> <span class="o">=</span> <span class="p">[]</span>
            <span class="k">for</span> <span class="n">char</span> <span class="ow">in</span> <span class="n">cell</span><span class="p">.</span><span class="n">value</span><span class="p">:</span>
                <span class="k">if</span> <span class="n">char</span> <span class="ow">in</span> <span class="n">kantipur_to_english</span><span class="p">:</span>
                    <span class="n">converted_chars</span><span class="p">.</span><span class="nf">append</span><span class="p">(</span><span class="n">kantipur_to_english</span><span class="p">[</span><span class="n">char</span><span class="p">])</span>
                <span class="k">else</span><span class="p">:</span>
                    <span class="n">converted_chars</span><span class="p">.</span><span class="nf">append</span><span class="p">(</span><span class="n">char</span><span class="p">)</span>
            <span class="n">cell</span><span class="p">.</span><span class="n">value</span> <span class="o">=</span> <span class="sh">''</span><span class="p">.</span><span class="nf">join</span><span class="p">(</span><span class="n">converted_chars</span><span class="p">)</span>

<span class="c1"># Save the modified Excel file
</span><span class="n">wb</span><span class="p">.</span><span class="nf">save</span><span class="p">(</span><span class="sh">'</span><span class="s">List-with-Kantipur-numbers-to-English-numbers.xlsx</span><span class="sh">'</span><span class="p">)</span>
</code></pre></div></div>

<p><a href="https://districts.enepal.net.np/List-with-Kantipur-numbers-to-English-numbers.xlsx">माथीको कोडले तयार गरेेको फाईल हेर्न यहाँ क्लिक गर्नुहोस ।</a>  यो कोडले हामीले काम गर्दै गरेको एक्सल फाईलको आठौ रो मा भएको मोबाईल नम्बरलाई अंग्रेजीमा रुपान्तरण गर्ने काम गर्दछ ।</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="n">pandas</span> <span class="k">as</span> <span class="n">pd</span>

<span class="c1"># Read the Excel file
</span><span class="n">df</span> <span class="o">=</span> <span class="n">pd</span><span class="p">.</span><span class="nf">read_excel</span><span class="p">(</span><span class="sh">"</span><span class="s">List-with-Kantipur-numbers-to-English-numbers.xlsx</span><span class="sh">"</span><span class="p">)</span>

<span class="c1"># Keep columns up to 'I' and drop all columns after 'I'
</span><span class="n">columns_to_keep</span> <span class="o">=</span> <span class="n">df</span><span class="p">.</span><span class="n">columns</span><span class="p">[:</span><span class="n">df</span><span class="p">.</span><span class="n">columns</span><span class="p">.</span><span class="nf">get_loc</span><span class="p">(</span><span class="sh">'</span><span class="s">Unnamed: 4</span><span class="sh">'</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span>
<span class="n">df</span> <span class="o">=</span> <span class="n">df</span><span class="p">[</span><span class="n">columns_to_keep</span><span class="p">]</span>

<span class="c1"># Save the updated DataFrame to a new Excel file
</span><span class="n">df</span><span class="p">.</span><span class="nf">to_excel</span><span class="p">(</span><span class="sh">"</span><span class="s">drop-all-columns-after-I.xlsx</span><span class="sh">"</span><span class="p">,</span> <span class="n">index</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
</code></pre></div></div>

<p><a href="https://districts.enepal.net.np/drop-all-columns-after-I.xlsx">माथीको कोडले तयार गरेेको फाईल हेर्न यहाँ क्लिक गर्नुहोस ।</a>  माथीको कोडले डाटा भएको अन्तिम कोलम (I) पछीका सबै कोलमहरु डिलिट गर्ने काम गर्दछ ।</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="n">pandas</span> <span class="k">as</span> <span class="n">pd</span>

<span class="c1"># Read the Excel file
</span><span class="n">df</span> <span class="o">=</span> <span class="n">pd</span><span class="p">.</span><span class="nf">read_excel</span><span class="p">(</span><span class="sh">"</span><span class="s">drop-all-columns-after-I.xlsx</span><span class="sh">"</span><span class="p">)</span>

<span class="c1"># Split the values in column H (phone numbers) into separate columns
</span><span class="n">phone_numbers_split</span> <span class="o">=</span> <span class="n">df</span><span class="p">[</span><span class="sh">'</span><span class="s">cgnfOgsf gfd</span><span class="sh">'</span><span class="p">].</span><span class="nb">str</span><span class="p">.</span><span class="nf">split</span><span class="p">(</span><span class="sh">'</span><span class="s">,</span><span class="sh">'</span><span class="p">,</span> <span class="n">expand</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
<span class="n">phone_columns</span> <span class="o">=</span> <span class="p">[</span><span class="sa">f</span><span class="sh">'</span><span class="s">Phone_</span><span class="si">{</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="si">}</span><span class="sh">'</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nf">range</span><span class="p">(</span><span class="n">phone_numbers_split</span><span class="p">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">1</span><span class="p">])]</span>
<span class="n">df</span><span class="p">[</span><span class="n">phone_columns</span><span class="p">]</span> <span class="o">=</span> <span class="n">phone_numbers_split</span>

<span class="c1"># Split the values in column I (email addresses) into separate columns
</span><span class="n">email_addresses_split</span> <span class="o">=</span> <span class="n">df</span><span class="p">[</span><span class="sh">'</span><span class="s">Unnamed: 4</span><span class="sh">'</span><span class="p">].</span><span class="nb">str</span><span class="p">.</span><span class="nf">split</span><span class="p">(</span><span class="sh">'</span><span class="s">,</span><span class="sh">'</span><span class="p">,</span> <span class="n">expand</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
<span class="n">email_columns</span> <span class="o">=</span> <span class="p">[</span><span class="sa">f</span><span class="sh">'</span><span class="s">Email_</span><span class="si">{</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="si">}</span><span class="sh">'</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nf">range</span><span class="p">(</span><span class="n">email_addresses_split</span><span class="p">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">1</span><span class="p">])]</span>
<span class="n">df</span><span class="p">[</span><span class="n">email_columns</span><span class="p">]</span> <span class="o">=</span> <span class="n">email_addresses_split</span>

<span class="c1"># Optional: Drop the original H and I columns if no longer needed
# df.drop(columns=['H', 'I'], inplace=True)
</span>

<span class="c1"># Save the updated DataFrame to a new Excel file
</span><span class="n">df</span><span class="p">.</span><span class="nf">to_excel</span><span class="p">(</span><span class="sh">"</span><span class="s">split-the-values-in-column-H-and-I-into-separate-columns.xlsx</span><span class="sh">"</span><span class="p">,</span> <span class="n">index</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
</code></pre></div></div>

<p><a href="https://districts.enepal.net.np/split-the-values-in-column-H-and-I-into-separate-columns.xlsx">माथीको कोडले तयार गरेेको फाईल हेर्न यहाँ क्लिक गर्नुहोस ।</a>  यो कोडले ईमेल र मोबाईल कोलमममा भएका टेक्स्टहरुलाई त्यसको भएको कमा को आधारमा छुट्टयार अन्तिमको कोलममा राख्ने काम गर्दछ ।</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="n">pandas</span> <span class="k">as</span> <span class="n">pd</span>

<span class="c1"># Read the Excel file
</span><span class="n">df</span> <span class="o">=</span> <span class="n">pd</span><span class="p">.</span><span class="nf">read_excel</span><span class="p">(</span><span class="sh">"</span><span class="s">split-the-values-in-column-H-and-I-into-separate-columns.xlsx</span><span class="sh">"</span><span class="p">)</span>

<span class="c1"># Print original headers
</span><span class="nf">print</span><span class="p">(</span><span class="sh">"</span><span class="s">Original Headers:</span><span class="sh">"</span><span class="p">,</span> <span class="n">df</span><span class="p">.</span><span class="n">columns</span><span class="p">.</span><span class="nf">tolist</span><span class="p">())</span>

<span class="c1"># Rename the headers
</span><span class="n">df</span><span class="p">.</span><span class="nf">rename</span><span class="p">(</span><span class="n">columns</span><span class="o">=</span><span class="p">{</span><span class="sh">"</span><span class="s">Unnamed: 0</span><span class="sh">"</span><span class="p">:</span> <span class="sh">"</span><span class="s">SN</span><span class="sh">"</span><span class="p">,</span> <span class="sh">"</span><span class="s">kmfOn g=</span><span class="sh">"</span><span class="p">:</span> <span class="sh">"</span><span class="s">REG_NO</span><span class="sh">"</span><span class="p">,</span><span class="sh">"</span><span class="s">Unnamed: 1</span><span class="sh">"</span><span class="p">:</span><span class="sh">"</span><span class="s">RED_DATE_NP</span><span class="sh">"</span><span class="p">,</span><span class="sh">"</span><span class="s">btf g=</span><span class="sh">"</span><span class="p">:</span><span class="sh">"</span><span class="s">URL</span><span class="sh">"</span><span class="p">,</span><span class="sh">"</span><span class="s">Unnamed: 2</span><span class="sh">"</span><span class="p">:</span><span class="sh">"</span><span class="s">PUBLICATION</span><span class="sh">"</span><span class="p">,</span><span class="sh">"</span><span class="s">btf ldlt</span><span class="sh">"</span><span class="p">:</span><span class="sh">"</span><span class="s">ADDRESS</span><span class="sh">"</span><span class="p">,</span><span class="sh">"</span><span class="s">Unnamed: 3</span><span class="sh">"</span><span class="p">:</span><span class="sh">"</span><span class="s">PUBLISHER</span><span class="sh">"</span><span class="p">,</span><span class="sh">"</span><span class="s">cgnfOgsf gfd</span><span class="sh">"</span><span class="p">:</span><span class="sh">"</span><span class="s">CONTACT</span><span class="sh">"</span><span class="p">,</span><span class="sh">"</span><span class="s">Unnamed: 4</span><span class="sh">"</span><span class="p">:</span><span class="sh">"</span><span class="s">EMAIL</span><span class="sh">"</span><span class="p">},</span> <span class="n">inplace</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>

<span class="c1"># Print new headers
# print("New Headers:", df.columns.tolist())
# Save the updated DataFrame to a new Excel file
</span><span class="n">df</span><span class="p">.</span><span class="nf">to_excel</span><span class="p">(</span><span class="sh">"</span><span class="s">rename-the-headers-all-data.xlsx</span><span class="sh">"</span><span class="p">,</span> <span class="n">index</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
</code></pre></div></div>

<p><a href="https://districts.enepal.net.np/rename-the-headers-all-data.xlsx">माथीको कोडले तयार गरेेको फाईल हेर्न यहाँ क्लिक गर्नुहोस ।</a> माथीको कोडले अहिले सम्म हामीले काम गर्दै गरेको एक्सल फाईलको हेडीङ्ग परिवर्तन गर्दछ ।</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="n">pandas</span> <span class="k">as</span> <span class="n">pd</span>

<span class="c1"># Read the Excel file
</span><span class="n">df</span> <span class="o">=</span> <span class="n">pd</span><span class="p">.</span><span class="nf">read_excel</span><span class="p">(</span><span class="sh">'</span><span class="s">rename-the-headers-all-data.xlsx</span><span class="sh">'</span><span class="p">)</span>

<span class="c1"># Convert the DataFrame to JSON
</span><span class="n">json_data</span> <span class="o">=</span> <span class="n">df</span><span class="p">.</span><span class="nf">to_json</span><span class="p">(</span><span class="n">orient</span><span class="o">=</span><span class="sh">'</span><span class="s">records</span><span class="sh">'</span><span class="p">,</span> <span class="n">lines</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>

<span class="c1"># Write the JSON data to a file
</span><span class="k">with</span> <span class="nf">open</span><span class="p">(</span><span class="sh">'</span><span class="s">rename-the-headers-all-data.json</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">w</span><span class="sh">'</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
    <span class="n">f</span><span class="p">.</span><span class="nf">write</span><span class="p">(</span><span class="n">json_data</span><span class="p">)</span>
</code></pre></div></div>

<p><a href="https://districts.enepal.net.np/rename-the-headers-all-data.json">माथीको कोडले तयार गरेेको फाईल हेर्न यहाँ क्लिक गर्नुहोस</a>  एक्सल फाईल फाईललाई जेसनमा परिवर्तन गर्दछ ।</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="n">pandas</span> <span class="k">as</span> <span class="n">pd</span>

<span class="c1"># Load the Excel file
</span><span class="n">file_path</span> <span class="o">=</span> <span class="sh">'</span><span class="s">rename-the-headers-all-data.xlsx</span><span class="sh">'</span>
<span class="n">df</span> <span class="o">=</span> <span class="n">pd</span><span class="p">.</span><span class="nf">read_excel</span><span class="p">(</span><span class="n">file_path</span><span class="p">,</span> <span class="n">sheet_name</span><span class="o">=</span><span class="sh">'</span><span class="s">Sheet1</span><span class="sh">'</span><span class="p">)</span>

<span class="c1"># Group the data by the first 4 digits of REG_DATE
</span><span class="n">grouped</span> <span class="o">=</span> <span class="n">df</span><span class="p">.</span><span class="nf">groupby</span><span class="p">(</span><span class="n">df</span><span class="p">[</span><span class="sh">'</span><span class="s">RED_DATE_NP</span><span class="sh">'</span><span class="p">].</span><span class="nf">astype</span><span class="p">(</span><span class="nb">str</span><span class="p">).</span><span class="nb">str</span><span class="p">[:</span><span class="mi">4</span><span class="p">])</span>

<span class="c1"># Create a new Excel file for each group
</span><span class="k">with</span> <span class="n">pd</span><span class="p">.</span><span class="nc">ExcelWriter</span><span class="p">(</span><span class="sh">'</span><span class="s">group-the-data-by-the-reg-year.xlsx</span><span class="sh">'</span><span class="p">)</span> <span class="k">as</span> <span class="n">writer</span><span class="p">:</span>
    <span class="k">for</span> <span class="n">name</span><span class="p">,</span> <span class="n">group</span> <span class="ow">in</span> <span class="n">grouped</span><span class="p">:</span>
        <span class="c1"># Write each group to a separate sheet
</span>        <span class="n">group</span><span class="p">.</span><span class="nf">to_excel</span><span class="p">(</span><span class="n">writer</span><span class="p">,</span> <span class="n">sheet_name</span><span class="o">=</span><span class="sa">f</span><span class="sh">'</span><span class="s">BS_</span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="sh">'</span><span class="p">,</span> <span class="n">index</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>

<span class="nf">print</span><span class="p">(</span><span class="sh">"</span><span class="s">Data divided into separate sheets based on the 4-digit numbers in column D.</span><span class="sh">"</span><span class="p">)</span>
</code></pre></div></div>

<p><a href="https://districts.enepal.net.np/group-the-data-by-the-reg-year.xlsx">माथीको कोडले तयार गरेेको फाईल हेर्न यहाँ क्लिक गर्नुहोस ।</a>  माथी कोडले एउटै सिटमा भएका सबै डाटाहरुलाई रजिष्ट्रेशन डेट (नेपाली) को आधारमा छुट्टा छुट्टै सिटमा डाटाहरु राख्ने काम गर्दछ । उदारणको लागी बि स २०७० मा दर्ता भएका वेबसाईटहरुलाई BS_2070 नाम गरेको सिटमा सेभ गरेर राख्छ ।</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># Install necessary libraries
# pip install python-whois
</span>    
<span class="kn">import</span> <span class="n">pandas</span> <span class="k">as</span> <span class="n">pd</span>
<span class="kn">import</span> <span class="n">whois</span>
<span class="kn">from</span> <span class="n">datetime</span> <span class="kn">import</span> <span class="n">datetime</span>

<span class="c1"># Read the Excel file and the specific sheet
</span><span class="n">df</span> <span class="o">=</span> <span class="n">pd</span><span class="p">.</span><span class="nf">read_excel</span><span class="p">(</span><span class="sh">'</span><span class="s">group-the-data-by-the-reg-year.xlsx</span><span class="sh">'</span><span class="p">,</span> <span class="n">sheet_name</span><span class="o">=</span><span class="sh">'</span><span class="s">BS_2070</span><span class="sh">'</span><span class="p">)</span>

<span class="c1"># Initialize lists to store WHOIS information
</span><span class="n">whois_data</span> <span class="o">=</span> <span class="p">{</span>
    <span class="sh">'</span><span class="s">Registrar</span><span class="sh">'</span><span class="p">:</span> <span class="p">[],</span>
    <span class="sh">'</span><span class="s">Whois_Server</span><span class="sh">'</span><span class="p">:</span> <span class="p">[],</span>
    <span class="sh">'</span><span class="s">Referral_URL</span><span class="sh">'</span><span class="p">:</span> <span class="p">[],</span>
    <span class="sh">'</span><span class="s">Updated_Date</span><span class="sh">'</span><span class="p">:</span> <span class="p">[],</span>
    <span class="sh">'</span><span class="s">Creation_Date</span><span class="sh">'</span><span class="p">:</span> <span class="p">[],</span>
    <span class="sh">'</span><span class="s">Expiration_Date</span><span class="sh">'</span><span class="p">:</span> <span class="p">[],</span>
    <span class="sh">'</span><span class="s">Name_Servers</span><span class="sh">'</span><span class="p">:</span> <span class="p">[],</span>
    <span class="sh">'</span><span class="s">Status</span><span class="sh">'</span><span class="p">:</span> <span class="p">[],</span>
    <span class="sh">'</span><span class="s">Emails</span><span class="sh">'</span><span class="p">:</span> <span class="p">[],</span>
    <span class="sh">'</span><span class="s">Dnssec</span><span class="sh">'</span><span class="p">:</span> <span class="p">[],</span>
    <span class="sh">'</span><span class="s">Name</span><span class="sh">'</span><span class="p">:</span> <span class="p">[],</span>
    <span class="sh">'</span><span class="s">Org</span><span class="sh">'</span><span class="p">:</span> <span class="p">[],</span>
    <span class="sh">'</span><span class="s">Address</span><span class="sh">'</span><span class="p">:</span> <span class="p">[],</span>
    <span class="sh">'</span><span class="s">City</span><span class="sh">'</span><span class="p">:</span> <span class="p">[],</span>
    <span class="sh">'</span><span class="s">State</span><span class="sh">'</span><span class="p">:</span> <span class="p">[],</span>
    <span class="sh">'</span><span class="s">Registrant_Postal_Code</span><span class="sh">'</span><span class="p">:</span> <span class="p">[],</span>
    <span class="sh">'</span><span class="s">Country</span><span class="sh">'</span><span class="p">:</span> <span class="p">[]</span>
<span class="p">}</span>

<span class="c1"># Helper function to format dates
</span><span class="k">def</span> <span class="nf">format_date</span><span class="p">(</span><span class="n">date</span><span class="p">):</span>
    <span class="k">if</span> <span class="nf">isinstance</span><span class="p">(</span><span class="n">date</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
        <span class="k">return</span> <span class="p">[</span><span class="n">d</span><span class="p">.</span><span class="nf">strftime</span><span class="p">(</span><span class="sh">'</span><span class="s">%d-%m-%Y</span><span class="sh">'</span><span class="p">)</span> <span class="k">if</span> <span class="nf">isinstance</span><span class="p">(</span><span class="n">d</span><span class="p">,</span> <span class="n">datetime</span><span class="p">)</span> <span class="k">else</span> <span class="bp">None</span> <span class="k">for</span> <span class="n">d</span> <span class="ow">in</span> <span class="n">date</span><span class="p">]</span>
    <span class="k">return</span> <span class="n">date</span><span class="p">.</span><span class="nf">strftime</span><span class="p">(</span><span class="sh">'</span><span class="s">%d-%m-%Y</span><span class="sh">'</span><span class="p">)</span> <span class="k">if</span> <span class="nf">isinstance</span><span class="p">(</span><span class="n">date</span><span class="p">,</span> <span class="n">datetime</span><span class="p">)</span> <span class="k">else</span> <span class="bp">None</span>

<span class="c1"># Fetch WHOIS information for each domain
</span><span class="k">for</span> <span class="n">domain</span> <span class="ow">in</span> <span class="n">df</span><span class="p">[</span><span class="sh">'</span><span class="s">URL</span><span class="sh">'</span><span class="p">]:</span>
    <span class="k">try</span><span class="p">:</span>
        <span class="n">domain_info</span> <span class="o">=</span> <span class="n">whois</span><span class="p">.</span><span class="nf">whois</span><span class="p">(</span><span class="n">domain</span><span class="p">)</span>
        <span class="n">whois_data</span><span class="p">[</span><span class="sh">'</span><span class="s">Registrar</span><span class="sh">'</span><span class="p">].</span><span class="nf">append</span><span class="p">(</span><span class="n">domain_info</span><span class="p">.</span><span class="n">registrar</span><span class="p">)</span>
        <span class="n">whois_data</span><span class="p">[</span><span class="sh">'</span><span class="s">Whois_Server</span><span class="sh">'</span><span class="p">].</span><span class="nf">append</span><span class="p">(</span><span class="n">domain_info</span><span class="p">.</span><span class="n">whois_server</span><span class="p">)</span>
        <span class="n">whois_data</span><span class="p">[</span><span class="sh">'</span><span class="s">Referral_URL</span><span class="sh">'</span><span class="p">].</span><span class="nf">append</span><span class="p">(</span><span class="n">domain_info</span><span class="p">.</span><span class="n">referral_url</span><span class="p">)</span>
        <span class="n">whois_data</span><span class="p">[</span><span class="sh">'</span><span class="s">Updated_Date</span><span class="sh">'</span><span class="p">].</span><span class="nf">append</span><span class="p">(</span><span class="nf">format_date</span><span class="p">(</span><span class="n">domain_info</span><span class="p">.</span><span class="n">updated_date</span><span class="p">))</span>
        <span class="n">whois_data</span><span class="p">[</span><span class="sh">'</span><span class="s">Creation_Date</span><span class="sh">'</span><span class="p">].</span><span class="nf">append</span><span class="p">(</span><span class="nf">format_date</span><span class="p">(</span><span class="n">domain_info</span><span class="p">.</span><span class="n">creation_date</span><span class="p">))</span>
        <span class="n">whois_data</span><span class="p">[</span><span class="sh">'</span><span class="s">Expiration_Date</span><span class="sh">'</span><span class="p">].</span><span class="nf">append</span><span class="p">(</span><span class="nf">format_date</span><span class="p">(</span><span class="n">domain_info</span><span class="p">.</span><span class="n">expiration_date</span><span class="p">))</span>
        <span class="n">whois_data</span><span class="p">[</span><span class="sh">'</span><span class="s">Name_Servers</span><span class="sh">'</span><span class="p">].</span><span class="nf">append</span><span class="p">(</span><span class="n">domain_info</span><span class="p">.</span><span class="n">name_servers</span><span class="p">)</span>
        <span class="n">whois_data</span><span class="p">[</span><span class="sh">'</span><span class="s">Status</span><span class="sh">'</span><span class="p">].</span><span class="nf">append</span><span class="p">(</span><span class="n">domain_info</span><span class="p">.</span><span class="n">status</span><span class="p">)</span>
        <span class="n">whois_data</span><span class="p">[</span><span class="sh">'</span><span class="s">Emails</span><span class="sh">'</span><span class="p">].</span><span class="nf">append</span><span class="p">(</span><span class="n">domain_info</span><span class="p">.</span><span class="n">emails</span><span class="p">)</span>
        <span class="n">whois_data</span><span class="p">[</span><span class="sh">'</span><span class="s">Dnssec</span><span class="sh">'</span><span class="p">].</span><span class="nf">append</span><span class="p">(</span><span class="n">domain_info</span><span class="p">.</span><span class="n">dnssec</span><span class="p">)</span>
        <span class="n">whois_data</span><span class="p">[</span><span class="sh">'</span><span class="s">Name</span><span class="sh">'</span><span class="p">].</span><span class="nf">append</span><span class="p">(</span><span class="n">domain_info</span><span class="p">.</span><span class="n">name</span><span class="p">)</span>
        <span class="n">whois_data</span><span class="p">[</span><span class="sh">'</span><span class="s">Org</span><span class="sh">'</span><span class="p">].</span><span class="nf">append</span><span class="p">(</span><span class="n">domain_info</span><span class="p">.</span><span class="n">org</span><span class="p">)</span>
        <span class="n">whois_data</span><span class="p">[</span><span class="sh">'</span><span class="s">Address</span><span class="sh">'</span><span class="p">].</span><span class="nf">append</span><span class="p">(</span><span class="n">domain_info</span><span class="p">.</span><span class="n">address</span><span class="p">)</span>
        <span class="n">whois_data</span><span class="p">[</span><span class="sh">'</span><span class="s">City</span><span class="sh">'</span><span class="p">].</span><span class="nf">append</span><span class="p">(</span><span class="n">domain_info</span><span class="p">.</span><span class="n">city</span><span class="p">)</span>
        <span class="n">whois_data</span><span class="p">[</span><span class="sh">'</span><span class="s">State</span><span class="sh">'</span><span class="p">].</span><span class="nf">append</span><span class="p">(</span><span class="n">domain_info</span><span class="p">.</span><span class="n">state</span><span class="p">)</span>
        <span class="n">whois_data</span><span class="p">[</span><span class="sh">'</span><span class="s">Registrant_Postal_Code</span><span class="sh">'</span><span class="p">].</span><span class="nf">append</span><span class="p">(</span><span class="n">domain_info</span><span class="p">.</span><span class="n">registrant_postal_code</span><span class="p">)</span>
        <span class="n">whois_data</span><span class="p">[</span><span class="sh">'</span><span class="s">Country</span><span class="sh">'</span><span class="p">].</span><span class="nf">append</span><span class="p">(</span><span class="n">domain_info</span><span class="p">.</span><span class="n">country</span><span class="p">)</span>
    <span class="k">except</span> <span class="n">whois</span><span class="p">.</span><span class="n">parser</span><span class="p">.</span><span class="n">PywhoisError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
        <span class="nf">print</span><span class="p">(</span><span class="sa">f</span><span class="sh">"</span><span class="s">Error fetching WHOIS info for </span><span class="si">{</span><span class="n">domain</span><span class="si">}</span><span class="s">: </span><span class="si">{</span><span class="n">e</span><span class="si">}</span><span class="sh">"</span><span class="p">)</span>
        <span class="c1"># Append None for all columns if there is an error
</span>        <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">whois_data</span><span class="p">.</span><span class="nf">keys</span><span class="p">():</span>
            <span class="n">whois_data</span><span class="p">[</span><span class="n">key</span><span class="p">].</span><span class="nf">append</span><span class="p">(</span><span class="bp">None</span><span class="p">)</span>

<span class="c1"># Create a new DataFrame for WHOIS data
</span><span class="n">whois_df</span> <span class="o">=</span> <span class="n">pd</span><span class="p">.</span><span class="nc">DataFrame</span><span class="p">(</span><span class="n">whois_data</span><span class="p">)</span>

<span class="c1"># Find the index of the Email_3 column to place the WHOIS data next to it
</span><span class="n">email_3_index</span> <span class="o">=</span> <span class="n">df</span><span class="p">.</span><span class="n">columns</span><span class="p">.</span><span class="nf">get_loc</span><span class="p">(</span><span class="sh">'</span><span class="s">Email_3</span><span class="sh">'</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span>

<span class="c1"># Insert the WHOIS data into the original DataFrame at the specified location
</span><span class="n">df_updated</span> <span class="o">=</span> <span class="n">pd</span><span class="p">.</span><span class="nf">concat</span><span class="p">([</span><span class="n">df</span><span class="p">.</span><span class="n">iloc</span><span class="p">[:,</span> <span class="p">:</span><span class="n">email_3_index</span><span class="p">],</span> <span class="n">whois_df</span><span class="p">,</span> <span class="n">df</span><span class="p">.</span><span class="n">iloc</span><span class="p">[:,</span> <span class="n">email_3_index</span><span class="p">:]],</span> <span class="n">axis</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>

<span class="c1"># Write the updated DataFrame back to the same Excel file and sheet
</span><span class="k">with</span> <span class="n">pd</span><span class="p">.</span><span class="nc">ExcelWriter</span><span class="p">(</span><span class="sh">'</span><span class="s">group-the-data-by-the-reg-year.xlsx</span><span class="sh">'</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="sh">'</span><span class="s">a</span><span class="sh">'</span><span class="p">,</span> <span class="n">if_sheet_exists</span><span class="o">=</span><span class="sh">'</span><span class="s">replace</span><span class="sh">'</span><span class="p">)</span> <span class="k">as</span> <span class="n">writer</span><span class="p">:</span>
    <span class="n">df_updated</span><span class="p">.</span><span class="nf">to_excel</span><span class="p">(</span><span class="n">writer</span><span class="p">,</span> <span class="n">sheet_name</span><span class="o">=</span><span class="sh">'</span><span class="s">BS_2070</span><span class="sh">'</span><span class="p">,</span> <span class="n">index</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
</code></pre></div></div>

<p><a href="https://districts.enepal.net.np/group-the-data-by-the-reg-year.xlsx">माथीको कोडले तयार गरेेको फाईल हेर्न यहाँ क्लिक गर्नुहोस ।</a> माथीको कोडले छुट्टा छु्ट्टै सिटमा भएको वेबसाईट ठेगाना (URL) को आधारमा त्यसको डेटा तान्ने काम गर्दछ । यसको लागि <a href="https://pypi.org/project/python-whois/">पाईथन-हुईज</a> मोड्युलको प्रयोग गरीएको छ । यसो गर्दा सबै भन्दा माथीको सिटको नाम र तलको सिटको नाम एकै पटक परिवर्तन गर्नु पर्दछ । यसरि छुट्टा छुट्टै सिटमा राख्नुको कारण पनि हुईज (whois) डाटा तान्ने काम क्रमश होस । एकै पटक सर्भरलाई लोड नपरोस भन्नाले हो ।</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="n">pandas</span> <span class="k">as</span> <span class="n">pd</span>

<span class="c1"># Load all sheets into a dictionary of DataFrames
</span><span class="n">xls</span> <span class="o">=</span> <span class="n">pd</span><span class="p">.</span><span class="nc">ExcelFile</span><span class="p">(</span><span class="sh">'</span><span class="s">group-the-data-by-the-reg-year.xlsx</span><span class="sh">'</span><span class="p">)</span>
<span class="n">dfs</span> <span class="o">=</span> <span class="p">{</span><span class="n">sheet_name</span><span class="p">:</span> <span class="n">xls</span><span class="p">.</span><span class="nf">parse</span><span class="p">(</span><span class="n">sheet_name</span><span class="p">)</span> <span class="k">for</span> <span class="n">sheet_name</span> <span class="ow">in</span> <span class="n">xls</span><span class="p">.</span><span class="n">sheet_names</span><span class="p">}</span>

<span class="c1"># Concatenate all DataFrames into one
</span><span class="n">df_all</span> <span class="o">=</span> <span class="n">pd</span><span class="p">.</span><span class="nf">concat</span><span class="p">(</span><span class="n">dfs</span><span class="p">.</span><span class="nf">values</span><span class="p">(),</span> <span class="n">ignore_index</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>

<span class="c1"># Write the concatenated DataFrame to a new sheet in the same Excel file
</span><span class="k">with</span> <span class="n">pd</span><span class="p">.</span><span class="nc">ExcelWriter</span><span class="p">(</span><span class="sh">'</span><span class="s">enlisted-sites-with-whois-info.xlsx</span><span class="sh">'</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="sh">'</span><span class="s">a</span><span class="sh">'</span><span class="p">,</span> <span class="n">if_sheet_exists</span><span class="o">=</span><span class="sh">'</span><span class="s">replace</span><span class="sh">'</span><span class="p">)</span> <span class="k">as</span> <span class="n">writer</span><span class="p">:</span>
    <span class="n">df_all</span><span class="p">.</span><span class="nf">to_excel</span><span class="p">(</span><span class="n">writer</span><span class="p">,</span> <span class="n">sheet_name</span><span class="o">=</span><span class="sh">'</span><span class="s">ALL</span><span class="sh">'</span><span class="p">,</span> <span class="n">index</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
</code></pre></div></div>

<p><a href="https://districts.enepal.net.np/enlisted-sites-with-whois-info.xlsx">माथीको कोडले तयार गरेेको फाईल हेर्न यहाँ क्लिक गर्नुहोस ।</a> यसमा ALL नाम गरेको सिटमा सबै साईटहरुको प्रेसकाउन्सिलले सार्वजनिक गरेको बिबरण र डोमेनको हुईज ईन्फर्मेशन छ । अब तपाई सँग डाटा छ - यसलाई कसरी प्रयोग गर्नु हुन्छ तपाईको हातमा ।</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="n">pandas</span> <span class="k">as</span> <span class="n">pd</span>
<span class="kn">from</span> <span class="n">io</span> <span class="kn">import</span> <span class="n">BytesIO</span>
<span class="kn">import</span> <span class="n">requests</span>

<span class="c1"># URL of the Excel file
</span><span class="n">url</span> <span class="o">=</span> <span class="sh">'</span><span class="s">https://districts.enepal.net.np/enlisted-sites-with-whois-info.xlsx</span><span class="sh">'</span>

<span class="c1"># Download the Excel file
</span><span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="p">.</span><span class="nf">get</span><span class="p">(</span><span class="n">url</span><span class="p">)</span>
<span class="n">excel_data</span> <span class="o">=</span> <span class="n">response</span><span class="p">.</span><span class="n">content</span>

<span class="c1"># Columns to extract from the Excel file
</span><span class="n">columns_to_extract</span> <span class="o">=</span> <span class="p">[</span>
    <span class="sh">'</span><span class="s">SN</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">REG_NO</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">RED_DATE_NP</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">URL</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">PUBLISHER</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">Name</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">PUBLICATION</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">Org</span><span class="sh">'</span><span class="p">,</span> 
    <span class="sh">'</span><span class="s">ADDRESS</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">Address</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">City</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">State</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">Country</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">Phone_1</span><span class="sh">'</span><span class="p">,</span> 
    <span class="sh">'</span><span class="s">Phone_2</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">Email_1</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">Email_2</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">Registrar</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">Whois_Server</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">Updated_Date</span><span class="sh">'</span><span class="p">,</span> 
    <span class="sh">'</span><span class="s">Creation_Date</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">Expiration_Date</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">Name_Servers</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">Emails</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">Dnssec</span><span class="sh">'</span>
<span class="p">]</span>

<span class="c1"># Load the Excel file into a DataFrame and select the 'ALL' sheet
</span><span class="n">df</span> <span class="o">=</span> <span class="n">pd</span><span class="p">.</span><span class="nf">read_excel</span><span class="p">(</span><span class="nc">BytesIO</span><span class="p">(</span><span class="n">excel_data</span><span class="p">),</span> <span class="n">sheet_name</span><span class="o">=</span><span class="sh">'</span><span class="s">ALL</span><span class="sh">'</span><span class="p">,</span> <span class="n">usecols</span><span class="o">=</span><span class="n">columns_to_extract</span><span class="p">)</span>

<span class="c1"># Ensure 'Creation_Date', 'Expiration_Date', and 'Updated_Date' have only one date, removing duplicates if there are any
</span><span class="k">def</span> <span class="nf">select_first_unique_date</span><span class="p">(</span><span class="n">dates</span><span class="p">):</span>
    <span class="k">if</span> <span class="nf">isinstance</span><span class="p">(</span><span class="n">dates</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
        <span class="c1"># Handle case where dates are stored as a single string
</span>        <span class="n">dates</span> <span class="o">=</span> <span class="n">dates</span><span class="p">.</span><span class="nf">strip</span><span class="p">(</span><span class="sh">'</span><span class="s">[]</span><span class="sh">'</span><span class="p">).</span><span class="nf">replace</span><span class="p">(</span><span class="sh">"'"</span><span class="p">,</span> <span class="sh">""</span><span class="p">).</span><span class="nf">split</span><span class="p">(</span><span class="sh">'</span><span class="s">, </span><span class="sh">'</span><span class="p">)</span>
    <span class="k">return</span> <span class="n">dates</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="k">if</span> <span class="nf">isinstance</span><span class="p">(</span><span class="n">dates</span><span class="p">,</span> <span class="nb">list</span><span class="p">)</span> <span class="k">else</span> <span class="n">dates</span>

<span class="n">df</span><span class="p">[</span><span class="sh">'</span><span class="s">Creation_Date</span><span class="sh">'</span><span class="p">]</span> <span class="o">=</span> <span class="n">df</span><span class="p">[</span><span class="sh">'</span><span class="s">Creation_Date</span><span class="sh">'</span><span class="p">].</span><span class="nf">apply</span><span class="p">(</span><span class="n">select_first_unique_date</span><span class="p">)</span>
<span class="n">df</span><span class="p">[</span><span class="sh">'</span><span class="s">Expiration_Date</span><span class="sh">'</span><span class="p">]</span> <span class="o">=</span> <span class="n">df</span><span class="p">[</span><span class="sh">'</span><span class="s">Expiration_Date</span><span class="sh">'</span><span class="p">].</span><span class="nf">apply</span><span class="p">(</span><span class="n">select_first_unique_date</span><span class="p">)</span>
<span class="n">df</span><span class="p">[</span><span class="sh">'</span><span class="s">Updated_Date</span><span class="sh">'</span><span class="p">]</span> <span class="o">=</span> <span class="n">df</span><span class="p">[</span><span class="sh">'</span><span class="s">Updated_Date</span><span class="sh">'</span><span class="p">].</span><span class="nf">apply</span><span class="p">(</span><span class="n">select_first_unique_date</span><span class="p">)</span>

<span class="c1"># Convert specific columns to title case
</span><span class="n">columns_to_title_case</span> <span class="o">=</span> <span class="p">[</span><span class="sh">'</span><span class="s">Name</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">Org</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">Address</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">City</span><span class="sh">'</span><span class="p">,</span> <span class="sh">'</span><span class="s">State</span><span class="sh">'</span><span class="p">]</span>
<span class="n">df</span><span class="p">[</span><span class="n">columns_to_title_case</span><span class="p">]</span> <span class="o">=</span> <span class="n">df</span><span class="p">[</span><span class="n">columns_to_title_case</span><span class="p">].</span><span class="nf">apply</span><span class="p">(</span><span class="k">lambda</span> <span class="n">col</span><span class="p">:</span> <span class="n">col</span><span class="p">.</span><span class="nb">str</span><span class="p">.</span><span class="nf">title</span><span class="p">())</span>

<span class="c1"># Convert 'Expiration_Date' to datetime to extract month
</span><span class="n">df</span><span class="p">[</span><span class="sh">'</span><span class="s">Expiration_Date</span><span class="sh">'</span><span class="p">]</span> <span class="o">=</span> <span class="n">pd</span><span class="p">.</span><span class="nf">to_datetime</span><span class="p">(</span><span class="n">df</span><span class="p">[</span><span class="sh">'</span><span class="s">Expiration_Date</span><span class="sh">'</span><span class="p">],</span> <span class="n">errors</span><span class="o">=</span><span class="sh">'</span><span class="s">coerce</span><span class="sh">'</span><span class="p">,</span> <span class="n">dayfirst</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>

<span class="c1"># Drop rows where 'Expiration_Date' could not be converted
</span><span class="n">df</span><span class="p">.</span><span class="nf">dropna</span><span class="p">(</span><span class="n">subset</span><span class="o">=</span><span class="p">[</span><span class="sh">'</span><span class="s">Expiration_Date</span><span class="sh">'</span><span class="p">],</span> <span class="n">inplace</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>

<span class="c1"># Reorder columns to match the specified order
</span><span class="n">df</span> <span class="o">=</span> <span class="n">df</span><span class="p">[</span><span class="n">columns_to_extract</span><span class="p">]</span>

<span class="c1"># Create a dictionary of DataFrames grouped by month
</span><span class="n">dfs_by_month</span> <span class="o">=</span> <span class="p">{</span><span class="n">month</span><span class="p">:</span> <span class="n">data</span> <span class="k">for</span> <span class="n">month</span><span class="p">,</span> <span class="n">data</span> <span class="ow">in</span> <span class="n">df</span><span class="p">.</span><span class="nf">groupby</span><span class="p">(</span><span class="n">df</span><span class="p">[</span><span class="sh">'</span><span class="s">Expiration_Date</span><span class="sh">'</span><span class="p">].</span><span class="n">dt</span><span class="p">.</span><span class="n">month</span><span class="p">)}</span>

<span class="c1"># Write each DataFrame to a separate sheet in an Excel file
</span><span class="k">with</span> <span class="n">pd</span><span class="p">.</span><span class="nc">ExcelWriter</span><span class="p">(</span><span class="sh">'</span><span class="s">enlisted-sites-with-domain-expiry-month.xlsx</span><span class="sh">'</span><span class="p">)</span> <span class="k">as</span> <span class="n">writer</span><span class="p">:</span>
    <span class="k">for</span> <span class="n">month</span><span class="p">,</span> <span class="n">data</span> <span class="ow">in</span> <span class="n">dfs_by_month</span><span class="p">.</span><span class="nf">items</span><span class="p">():</span>
        <span class="n">sheet_name</span> <span class="o">=</span> <span class="n">pd</span><span class="p">.</span><span class="nf">to_datetime</span><span class="p">(</span><span class="n">month</span><span class="p">,</span> <span class="nb">format</span><span class="o">=</span><span class="sh">'</span><span class="s">%m</span><span class="sh">'</span><span class="p">).</span><span class="nf">strftime</span><span class="p">(</span><span class="sh">'</span><span class="s">%B</span><span class="sh">'</span><span class="p">)</span>
        <span class="n">data</span><span class="p">.</span><span class="nf">to_excel</span><span class="p">(</span><span class="n">writer</span><span class="p">,</span> <span class="n">sheet_name</span><span class="o">=</span><span class="n">sheet_name</span><span class="p">,</span> <span class="n">index</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>

<span class="c1"># Display the updated DataFrame
</span><span class="nf">print</span><span class="p">(</span><span class="n">df</span><span class="p">)</span>
</code></pre></div></div>

<p><a href="https://districts.enepal.net.np/enlisted-sites-with-domain-expiry-month.xlsx">माथीको कोडले तयार गरेेको फाईल हेर्न यहाँ क्लिक गर्नुहोस ।</a> यसमा ALL नाम गरेको सिटमा सबै साईटहरुलाई डोमेन एक्सपाईरी मन्थाको आधारमा छुट्टा छुट्टै लिष्टमा राखीएको छ ।</p>]]></content><author><name>Anish Bhattarai</name></author><summary type="html"><![CDATA[युजकेस सिनारियो : नेपाल प्रेस काउन्सिलले नियमित रूपमा प्रक्रिया पुरा गरी सञ्चालनमा रहेका अनलाइन वेबसाईटहरुको नामावली प्रकाशन गर्दछ । नामावली पिडिएफ फाईलमा प्रकाशन भएको हुन्छ । जसमा वेबसाइटको ठेगाना http प्रोटोकल बिना ठ्याक्क डोमेन नेम र एक्सटेन्सन मात्र लेखिएको हुन्छ भने वेबसाइट सञ्चालकको नाम , प्रकाशन गृह (कम्पनी), मोबाइल नम्बर र इमेल ठेगाना राखिएको हुन्छ । मोबाइल नम्बर पनि कसैको २ वटा , कसैको १ वटा , कसैको मोबाइल नम्बरको सट्टामा ल्यान्ड लाइन मोबाइल नम्बर र इमेल ठेगाना कसैको २ वटा कसैको १ वटा त्यो पनि एउटा सेलमा रहेको हुन्छ । पाईथनको साहायताले हामी यो डाटा क्लिन गर्नुका साथै यसको हुईज रेकर्ड पनि तान्छौ । मलाई लाग्छ - यती गरी सक्दा पाईथनबाट गर्न सकिने धेरै कामको आइडिया हुन्छ - त्यसपछी हामी जसो भन्यो त्यसै गर्न सक्छौ ।]]></summary></entry></feed>