The source provides an overview and critical analysis of the Arab Islamic Summit in Doha, focusing on the strong anti-Israel rhetoric presented by various leaders, including those from Qatar, Iran, Pakistan, and Turkey, who called for measures ranging from Israel’s accountability for war crimes to the suspension of its UN membership. The summit resulted in a joint declaration supporting Qatar’s role as a mediator, rejecting Israeli actions as war crimes, and endorsing the two-state solution, but the source critiques the fiery speeches as being largely performative and highlights the contrast between the bold rhetoric and the cautious reaction from neighboring Arab states like Saudi Arabia and the UAE. Furthermore, the source includes analysis of the US perspective—particularly President Trump’s pressure on Qatar—and presents Israeli Prime Minister Netanyahu’s defense of targeting Hamas by equating it with US action against Al-Qaeda. Finally, the source criticizes the summit’s limited practical impact on the conflict, suggesting that the focus on a united Islamic task force is unrealistic, and concludes with a call for the Muslim world to prioritize addressing terrorism as a shared global threat.
Doha Emergency Summit on Israel-Palestine Conflict
The Arab Islamic Summit was an emergency summit held in Doha, Qatar, the capital of the country. Approximately 50 heads of state or representatives from Arab and Islamic nations participated in the event.
The summit served as a platform for strong rhetoric and calls for action, although the subsequent joint communiqué revealed a degree of caution among some participating states.
Key Rhetoric and Concerns Raised
Leaders delivered speeches emphasizing that Israel had crossed all “red lines” and must be held accountable for violating international laws and the UN Charter.
Specific concerns and statements included:
Ameer of Qatar, Sheikh Tamim bin Hamad Al Thani, stated that the agenda of “Greater Israel” poses a threat to global peace. He noted that Qatar, acting as a mediator, had made sincere efforts for peace in the region, but Israel sabotaged the negotiation process by targeting Hamas leadership. He condemned the attack on the sovereignty of countries in the region by Israel and accused Israel of genocide (nasl kushi) against the Palestinians.
The Iranian President demanded that Israel’s membership in the United Nations be revoked.
The Pakistani Prime Minister called for the establishment of a joint task force of Muslim nations and demanded the implementation of the two-state solution. He warned that history would not forgive Islamic countries if they failed to unite at this juncture. (However, the source later notes skepticism, stating that the proposal for an Arab Islamic Task Force or “Islamic NATO” is currently impractical).
The Turkish President remarked that Israel acts as if it believes it is beyond questioning.
Leaders of Iran, Iraq, Egypt, and the Palestinian Authority, in addition to the Secretary Generals of the Arab League and the OIC (Organization of Islamic Cooperation), addressed the summit.
The Joint Communiqué (Mustarka Ilamiya)
The common declaration issued at the end of the Arab Islamic Summit included several important points:
It expressed complete solidarity with Doha.
It declared unconditional support (ghair mashroot himayat) for every possible retaliatory measure (jawab-i-iqdam).
The communiqué rejected Israeli justifications and claims.
It declared the use of siege and hunger as a weapon a “war crime”.
The leaders praised the “wise and sensible role of Qatar”.
They condemned the annexation or forced migration (jabri hijrat) of Palestinian territories under any potential Israeli decision.
The declaration demanded that the international community halt the continuous aggression occurring in Qatar, Gaza, the West Bank, and other areas.
The communiqué welcomed the recent endorsement of the two-state solution and the related announcement in the UN General Assembly.
It stressed the need to make the Middle East a zone free of destructive weapons.
Geopolitical Context and Critical Commentary
The sources highlight significant geopolitical dynamics surrounding the summit:
Arab Caution: Powerful neighboring Arab countries, including Saudi Arabia, the UAE, Kuwait, Bahrain, Jordan, and Syria, adopted an extremely cautious approach and avoided the fiery rhetoric that characterized other speeches.
Skepticism on Outcomes: The source critically assesses the outcome, suggesting that much of the highly rhetorical speeches (shola bayanian) were merely for cheap fame or display. The communiqué’s general points suggest that the grand claims made in speeches were not important enough to be included in the common declaration.
Continuation of Suffering: Despite the meeting of 50 Muslim nations, the source observes that the oppressed people of Gaza continue to suffer the same painful deaths, suggesting that the summit did not fundamentally alter the ground reality.
The “Arab Islamic” Terminology: The source notes the interesting use of the term “Arab Islamic” in referring to the summit, suggesting a fusion of the Arab League and the OIC. This terminology is linked to the idea that the Arab temperament often favors Arab nationalism over general Islamic identity.
American Pressure and Response
The United States responded swiftly after the summit, indicating strong pressure on Qatar:
Immediately after the summit concluded, Marco Rubio (referred to as the Secretary of State in the source) arrived in Doha to meet the Ameer of Qatar.
Rubio explicitly advised the Ameer of Qatar not to fall for the schemes of the various “loudmouths” (barkbazon).
Prior to the summit, the Qatari Prime Minister had already been subjected to extensive pressure and “brainwashing” at the White House.
President Trump used a “carrot and stick” approach with the Ameer of Qatar (Sheikh Tamim), directly stating that his people were unhappy and that he should prioritize solving the problems of his own people rather than engaging in grandstanding. This action is described as typical American pressure.
Arab Islamic Summit: Condemnations and Israeli Justifications
The Israel-Gaza conflict was the central topic of discussion at the Arab Islamic Summit, leading to strong condemnations of Israeli actions, specific demands, and an articulation of Israel’s justifications for its military campaign.
Condemnations and Accusations Against Israel
Leaders at the summit articulated that Israel had crossed all “red lines”. They demanded that Israel be held accountable for violating the UN Charter and international laws.
Specific actions and intentions attributed to Israel included:
Genocide and Aggression: The Ameer of Qatar, Sheikh Tamim bin Hamad Al Thani, accused Israel of committing “genocide (nasl kushi)” against the Palestinians. The common declaration demanded that the international community halt the continuous aggression occurring in Gaza, the West Bank, and other areas.
Sabotaging Peace: The Ameer of Qatar stated that Israel targeted Hamas leadership, thereby sabotaging the negotiation process that Qatar had pursued as a mediator for peace.
War Crimes: The joint communiqué declared the use of siege and hunger as a weapon a “war crime”.
Territorial Threat: The summit leaders rejected Israeli justifications. The communiqué condemned the annexation or forced migration (jabri hijrat) of Palestinian territories under any potential Israeli decision. Sheikh Tamim bin Hamad Al Thani specifically warned that the agenda of “Greater Israel” poses a threat to global peace.
Sovereignty Violations: Israel was condemned for attacking the sovereignty of countries in the region. The Turkish President also remarked that Israel acts as if it believes it is beyond questioning.
Israeli Justification and Strategy
The sources outline the justification provided by Israeli Prime Minister Benjamin Netanyahu for the offensive:
Targeting Terrorism: Netanyahu’s rationale is that Israel is targeting the culprits of the “biggest terrorist attack”—Hamas leadership. He described Hamas leadership as criminals of terrorism, much like how the US viewed Bin Laden and Al Qaeda after 9/11.
Right to Self-Defense: Netanyahu asserted that Israel will not rest until their hostages are released and “terrorist Hamas” is eliminated, regardless of the cost. He stated that every country has the right to defend itself, even outside its borders.
Comparison to US Actions: Netanyahu argued that when the US attacked Pakistan to eliminate a terrorist like Bin Laden, the world praised the action rather than condemning it. He suggested that based on this precedent, there is no justification for condemning Israel’s actions.
International Isolation: Netanyahu accused European countries of trying to push Israel into “global isolation” that could last for years, emphasizing that Israel would have to rely on its own resources.
Impact and Calls for Action
The source notes that despite the meeting of 50 Muslim nations, the oppressed people of Gaza continue to suffer the same painful deaths. They are described as being ground between two millstones. Protests against the Israeli atrocities are widespread globally, originating from Muslim and non-Muslim nations alike, including the Vatican City and European countries.
The Arab Islamic Summit resulted in several key demands regarding the conflict:
Political Solutions: The joint communiqué welcomed the recent endorsement of the two-state solution in the UN General Assembly. The Pakistani Prime Minister had also specifically called for the implementation of the two-state solution.
Halt Aggression: The declaration called upon the international community to halt the continuous aggression in Gaza, the West Bank, and other areas.
Global Unity: The Pakistani Prime Minister warned that history would not forgive Islamic countries if they failed to unite at this juncture. The Iranian President demanded that Israel’s membership in the United Nations be revoked.
Demilitarization: The communiqué stressed the need to make the Middle East a zone free of destructive weapons.
Furthermore, it is expected that UN discussions will lead to significant global pressure on Israel to spare the lives of the oppressed people of Gaza.
The Two-State Solution at the Arab Islamic Summit
The Two-state solution (Do Riyasate Hal) emerged as a key point of discussion and demand during and immediately following the Arab Islamic Summit.
Endorsement and Demands
The concept was officially acknowledged and supported in the common declaration issued at the conclusion of the summit:
UN Endorsement Welcome: The joint communiqué (Mustarka Ilamiya) welcomed the recent endorsement and related announcement of the two-state solution in the UN General Assembly.
Call for Implementation: The Pakistani Prime Minister, during his address at the summit, specifically called for the establishment of a joint task force of Muslim nations and demanded that the implementation of the two-state solution be ensured.
Future Outlook and Debate
The sources indicate that the Two-state solution is expected to be the subject of intense global discussion following the current conflict:
Intensified Debates: It is anticipated that extensive debates (khub bahsein chhidne wali hain) will erupt concerning the two-state solution.
European Advocacy: European countries are expected to strongly highlight (khub uthayenge) this issue. This focus is linked to their disputes with American President Trump.
Need for Critique: One source suggests that the debate on the two-state solution in the Middle East warrants critical analysis (tanqeedi jaye).
The summit’s endorsement of the Two-state solution was part of a broader set of demands, including asking the international community to halt the continuous aggression occurring in Qatar, Gaza, the West Bank, and other areas, and stressing the need to make the Middle East a zone free of destructive weapons.
US Diplomatic Pressure on Qatar and the Ameer
The United States exerted significant diplomatic pressure (Amki pressure) on Qatar, particularly in the immediate aftermath of the Arab Islamic Summit held in Doha, as well as on Qatar’s leadership prior to the event.
Key aspects of this pressure included:
Direct Warnings to the Ameer of Qatar
President Trump utilized a “carrot and stick” approach (Gaajar ke saath stick ka istemal) when dealing with the Ameer of Qatar, Sheikh Tamim. Trump reportedly disregarded conventional diplomatic protocols (kisi mooh rakhi ya bharam ka bhi koi khayal nahin rakha) and delivered a blunt message:
Trump clearly stated that the Ameer’s people were unhappy.
He advised Sheikh Tamim to stop focusing on grandstanding (idhar udhar ki badi-badi chhod dein) or big ideas.
Instead, the Ameer was instructed to worry about the dissatisfaction of his own people and focus on solving their problems.
The source characterizes this interaction as containing a “wrapped message” (malfouf paigham) that exemplifies American pressure.
Diplomatic Missions and Scolding
US diplomatic efforts targeted Qatari officials before and after the summit:
Pre-Summit “Brainwashing”: Prior to the Arab Islamic Summit, the Qatari Prime Minister was called to the White House where he was subjected to extensive pressure, described as “good brainwashing” (acchi khaasi brain washing).
Post-Summit Warning: Immediately after the summit concluded, Marco Rubio (referred to as the Secretary of State in the source) arrived in Doha to meet the Ameer of Qatar. Rubio explicitly advised the Ameer “not to fall for the schemes of the various loudmouths” (mukhtalif nau barkbazon ke jhanse mein mat aiyega).
Pressure Regarding Israel and the Region
The sources also detail how the US maintained diplomatic contact with Israel to offer support while engaging in pressure tactics with allies:
Support for Israel: During the period of the Arab Islamic Summit, Marco Rubio was present in Israel, assuring them, “Don’t worry, we are with you”.
Treatment of Netanyahu: While Trump generally supports Israel, he is described as sparing nobody, occasionally giving Prime Minister Benjamin Netanyahu a “dressing down,” “scolding,” or “laundering” (thodi bahut jhaadphoonk lati laayi dhulai ya sajnash kar dete hain). However, when Netanyahu seemed troubled, Trump would send Rubio to offer encouragement (hausla dilane ke liye).
Critique of US Stance: The sources pose a critical question regarding the perceived inconsistency of US pressure, noting that when an Iranian attack previously threatened Qatari sovereignty (targeting a foreign base), the outcry of “loudmouth statements” (shola bayanian) and concerns over Qatari sovereignty did not rise to the level seen after the current conflict.
Arab Islamic Summit: Conflict, Divisions, and US Pressure
Middle East politics, as reflected by the discussions and fallout from the Arab Islamic Summit, are characterized by intense conflict, internal divisions among Arab and Islamic nations, significant external pressure from the United States, and ongoing debates over political solutions like the Two-state solution.
The Central Conflict and Israeli Rationale
The Israel-Gaza conflict formed the core of the political discourse. Leaders at the summit asserted that Israel had crossed all “red lines” and must be held accountable for violating international laws and the UN Charter. Accusations against Israel included committing “genocide (nasl kushi)” against the Palestinians and employing siege and hunger as a weapon, which was declared a “war crime”. Concerns were also raised about the continuation of the “Greater Israel” agenda, which is seen as a threat to global peace.
In contrast, Israeli Prime Minister Benjamin Netanyahu justified the military offensive by framing it as a necessary response to the “biggest terrorist attack”:
Netanyahu argued that Israel is targeting the culprits of terrorism—Hamas leadership.
He claimed the right to defend Israel, even outside its borders, and vowed to eliminate “terrorist Hamas” regardless of the cost.
He used the precedent of the US attack on Pakistan to eliminate Bin Laden, arguing that if that action was praised, condemnation of Israel’s actions targeting Hamas leadership is unjustified.
Geopolitical Divisions and Organizational Dynamics
The sources highlight a crucial split in regional political strategy between the core Arab states and other participating Islamic nations:
Arab Caution: Powerful neighboring Arab countries, including Saudi Arabia, the UAE, Kuwait, Bahrain, Jordan, and Syria, adopted an “extremely cautious approach” (intihai mohthat ta’ssur) during the summit, deliberately refraining from the fiery rhetoric used by others.
Rhetoric vs. Action: Critical commentary noted that much of the highly rhetorical speeches (shola bayanian) delivered by some leaders (such as the Pakistani Prime Minister) appeared to be for “cheap fame or display” and lacked the importance necessary to be included in the cautious joint communiqué. Despite the meeting of 50 Muslim nations, the ground reality for the suffering people of Gaza remains unchanged.
Arab Nationalism vs. Islamic Identity: The sources analyze the significance of the summit being termed “Arab Islamic,” suggesting a fusion of the Arab League and the OIC (Organization of Islamic Cooperation). This is tied to the concept that the “Arab temperament” (Arbon ka mizaj) often favors Arab nationalism over a generalized Islamic identity.
External Influence: US Diplomatic Pressure
The politics of the Middle East are heavily influenced by the United States, which applies significant diplomatic pressure (Amki pressure), particularly on its allies like Qatar:
Direct Scolding: US President Trump used a “carrot and stick” approach with the Ameer of Qatar, Sheikh Tamim. Trump told the Ameer directly to stop focusing on “big ideas” and instead focus on addressing the “dissatisfaction of his own people”.
Post-Summit Warnings: Immediately after the summit, Marco Rubio (referred to as the Secretary of State in the source) arrived in Doha and explicitly warned the Ameer “not to fall for the schemes of the various loudmouths”, referring to the highly rhetorical speeches delivered by other leaders.
Support for Israel: During the summit period, Rubio was in Israel, reassuring them, “Don’t worry, we are with you”.
Proposed Solutions and Future Alliances
Political efforts focused on finding a resolution to the conflict and establishing new regional structures:
The Two-State Solution: This remains a critical point for resolving the conflict. The joint communiqué welcomed the recent endorsement of the two-state solution in the UN General Assembly. It is anticipated that this issue will generate extensive debates (khub bahsein chhidne wali hain) globally, particularly driven by European countries.
Failed Alliance Proposals: The suggestion by the Pakistani Prime Minister to establish a “joint task force of Muslim nations”, or an “Islamic NATO,” was deemed by the sources to be “currently impractical” (naqabil amal). This proposal faces severe internal hurdles, including deep internal “sectarian, religious, and political divisions” among Muslim nations.
इंसानों के नाम अफजार रिहान दोहा की अरब इस्लामिक समिट का हासिल क़तर के दाल हुकूमत दोहा में अरब इस्लामिक इमरजेंसी समिट मुनकद हुई जिसमें 50 के करीब अरब और इस्लामी मुालिक के सरबराहान या नुमाइंदों ने शिरकत की यहां की गई तकारीर में इस बात पर जोर दिया गया कि इसराइल ने तमाम रेड लाइंस अबूर कर ली है यूएन चार्टर और आलमी कवानीन की खिलाफवर्जी पर इसराइल को जवाबदेह ठहराना होगा अमीर कतर शेख तमीम बिन हमद सानी ने कहा कि ग्रेटर इसराइल का एजेंडा आलमी अमन के लिए खतरा है कतर ने सालस के तौर पर ख्ते में अमन के लिए मुखलसाना कोशिशें की लेकिन इसराइल ने मजाकराती अमल को सबूताज करते हुए हमास कयादत को निशाना बनाया इसराइल की जानिब से ख्ते के मुालिक की खुद मुख्तारी पर हमला काबिल मुज़म्मत है इसराइल के हाथों फस्तीनियों की नस्ल कुशी हो रही है इसने इजराइम की तमाम हदूद पार कर ली है इसराइली रबालियों की पुर अमन रिहाई के तमाम दावे भी झूठे हैं ईरानी प्रेसिडेंट ने कहा अकवामे मुतहदा से इसराइल की रकनियत मुतल करवा दी जाए पाकिस्तानी प्राइम मिनिस्टर ने कहा कि मुस्लिम अकवाम की मुश्तका टास्क फोर्स बनाई जाए और दो रियासी हल पर अमल दरामद यकीनी बनाया जाए उन्होंने कहा कि अगर अब भी इस्लामी मुालिक मुतहिद ना हुए तो तारीख हमें माफ़ नहीं करेगी तुर्क प्रेसिडेंट ने कहा कि इसराइल यह समझता है कि उसे कोई पूछ नहीं सकता इस अरब इस्लामिक समर से अरब लीग और ओआईसी के सेक्रेटरी जनरल्स के अलावा ईरान अराक मिस्र और फस्तीनी अथॉरिटी के सुदूल ने भी खिताब किया अलबत्ता कतर की हमसायगी में वाकयात ताकतवर अरब मुालिक बिलखसूस सऊदी अरब मुतहदा अरब अमरात कुवैत बहरीन जॉर्डन और सीरिया जैसे मुालिक ने इंतहाई मोहतात तज़ अमल अपनाते हुए बयानबाजी से एतराज किया अरब इस्लामिक समिट के इताम पर मुश्तका इलामिया में दोहा के साथ मुकम्मल यकीियती का इज़हार करते हुए कहा गया कि हम हर मुमकना जवाबी इदाम की गैर मशहूद हिमायत करते हैं एक गैर जानबदार सालसी मरकज को निशाना बनाना अमन कावशों को नाकाम बनाने के मुतरादिफ है कतर के दानिशमंदाना और होशमंदाना किरदार की तहसीन करते हुए इजिप्ट और अमेरिका की जारी सालसी मसाई को आम करार दिया गया इलामिया में इसराइली दामों और तौजीहात को मुस्तरद करते हुए मुहासरे और भूख को बतौर हथियार इस्तेमाल करना जंगी जुर्म करार दिया गया किसी भी मुमकना इसराइली फैसले के तहत फस्तीनी इलाकों के इंतजामाम या जबरी हिजरत की मज़म्मत की गई और आलमी बिरादरी से मुतालबा किया गया कि क़तर गजा वेस्ट बैंक और दीगर खतों पर जारी मुसलसल जारियत को रोका जाए यूएन जनरल असेंबली में हालिया ऐलान न्यूयॉर्क और दो रियासती हल की तौसीक का खैरमकदम करते हुए इस अम्र पर जोर दिया गया कि मिडिल ईस्ट को तबाह कुंदन हथियारों से पाक खाता बनाया जाए दशहां अपने अहले दानिश की खिदमत में कुछ अहम पॉइंट्स उजागर करने का खास्तकार है दुआ की अरब इस्लामिक समिट में जितनी भी शोला बयानियों पर मबनी तकरारी थी आप उन्हें बगौर पढ़िए इसके बाद जारी होने वाले मुश्तकालामिया के आम नकात का भी जायजा लीजिए आप पर वाज़ हो जाएगा कि बहुत सी शोला बयानिया बहुत सस्ती शहरत या दिखावे की बयानबाजी के लिए होती हैं जिनकी अहमियत इतनी भी नहीं कि उन्हें मुश्तरका इलामिया का हिस्सा भी बनाया जा सके बिलखसूस पाकिस्तानी अल्फाज़ शायद दीगर तमाम अरबो अजम या इस्लामिक हुक्मरानों से कहीं भरी हुई होती है इसके बिल मुकाबल शायद खुद निशाना बनने वाला मेजबान मुल्क भी इस हद तक जाना पसंद नहीं करता अगरचे हमारे पाकिस्तानी हुक्मरान भगोले छोड़ने के लिए उन्हें खूब पंप मारते पाए जाते हैं इस कारनामे पर हमारे मौजूदा जिहादी हुक्मरानों को निशाने इम्तियाज जरूर मिलना चाहिए पाकी लीडरान का सनसनीखेज बयानिया शायद अपने इस्लामी आवाम की जैसी तैसी खुशनूदी के लिए या इनकी बढ़ती ईमानी ख्वाहिशात को मुतमिन करने की खातिर तशकील पाता है अब अगर हमारे मीडिया की सुर्खियां मुलाहजा करें ख्वाब प्रिंट हो या इलेक्ट्रॉनिक या सोशल मीडिया तो यूं महसूस होता है कि जैसे कोई इंकलाब आ गया है और कुफ्र के खिलाफ इस्लामी दुनिया इकट्ठी हो गई है लिहाजा अब इसराइल की खैर नहीं बल्कि हमारा आवामी सलूब तो यह होता है कि ऐ मुसलमानों इकट्ठे होकर इसराइल का नापाक वजूद सफा हस्ती से मिटा दो पाकिस्तानी नहीं इस्लामी ईरान से भी स्नो की आवाजें निचली नहीं इख्तेदार की आला तरीन सतह से बारहब उठती रही है अलबत्ता ईरान इसराइल जंग के बाद अब इसमें थोड़ा ठहराव आया है रह गई रजा के अरब आवाम पर इसराइली ज्यादतियां इन पर तो कोई दो अरा है ही नहीं इस पर मुस्लिम ही नहीं गैर मुस्लिम अकवाम की जानिब से भी पूरी दुनिया में सख्त एतजाज किया जा रहा है हत्ता के वेटिकन सिटी से भी दर्द अंगेज बयानात जारी होते रहते हैं यूरोपियन मुालिक और इनके आवाम भी खुलकर बोल रहे हैं अरब इस्लामिक समिट के बाद हमारे सादा हबाब अगर यह समझते हैं कि अब कोई बहुत बड़ा इस्लामी तूफान उठ खड़े होगा दस्त बस्ता अज़ है कि वो अगर हालात हाजरा पर नजर रखते हैं तो उन्हें मालूम होना चाहिए कि गजा के मजलूम आवाम चक्की के जिन दो पार्टों में पहले से पिसते चले आ रहे हैं 50 मुस्लिम मुालिक की समट के बाद भी वो इसी तरह पिस रहे हैं इसी तरह दर्दनाक अमवात का शिकार हो रहे हैं दरवेश को कहा जाता है कि ज्यादा सच्चाई मत लिखो ठीक है जितना चाहो अपनी मर्जी का लिखवा लो लेकिन क्या इससे तल्ख जमीनी हकायक खत्म हो सकेंगे अगर हमारी बड़कों से इसराइल खत्म हो सकता तो शायद पैदा होने से कब ही फना हो चुका होता दरवेश की नजरों में सऊदी अरब से ज्यादा इस्लामी मुल्क तो दुनिया में कोई नहीं जो इस्लाम का मंबा और तू इस्लाम का मरकज है ना चीज ढूंढ रहा था कि इस अरब इस्लामिक समट में सऊदी कयादत ने क्या फरमाया है और फिर हाशमी सल्तनत के वारिस खानदाने नबूवत के चश्मो चिराग एक्सीलेंसी शाह अब्दुल्ला दोम ने क्या रहनुमाई फरमाई है पहले नजर की खिदमत में एक और दिलचस्प पॉइंट काबिल तवज्जो है माकबल जब भी इस नो की अफताद आती थी जैसे कि 69 में मस्जिद अक्सा को आग लगाने का मुबईना सानिया पेश आया तो ओआईसी की तंजीम वजूद में आई और फिर तब से मुस्लिम उमा की एक तरह से नुमाइंदा तंजीम ओआईसी को ही करार दिया जाता रहा अब वो क्या वजू है जिनके कारण एक अरसे से ओआईसी किसी हद तक पसमंजर में जाती दिखाई दे रही है जी चाहता है कि इसकी जेन्युइन वजूह पर किसी वक्त जामिया आर्टिकल तहरीर किया जाए और अरब लीग के बिल मुकाबिल इसका तकाबली जायजा पेश किया जाए इन दिनों अलबत्ता एक नई दिलचस्प टर्म अरब इस्लामिक इस्तेमाल हो रही है जैसे कि अरब लीग और ओआईसी को इकट्ठे कर दिया गया हो क्योंकि अरबों का मिजाज बिल उम इस्लामिक से ज्यादा अरब नेशनलिज्म की सूरत जलवा कर रहा है यह बात मज इजिप्ट या जमाल अब्दुल नासिर तक महदूद नहीं हमारे यहां जिन्हें इस्लामी उमा का बहुत बड़ा हीरो बनाकर पेश किया जाता है किंग फैसल बिन अब्दुल अजीज इनका यह बयान रिकॉर्ड पर मौजूद है कि मैं जब अरब वर्ड बोलता हूं तो इससे मेरी मुराद इस्लामिक वर्ल्ड ही होती है सवाल पैदा होता है कि अगर आपकी यह मुराद होती है तो आप बोल भी यही दिया करें इस गु्थी का दरा के लोगों को बखूबी हो सकता है जो मिडिल ईस्ट में अरब नेशनलिज्म के पसमंजर से आगाही रखते हैं बिलाश इन दिनों यूएन की रौनके बुलंदियों पर पहुंचने वाली है इस मर्तबा इसराइल पर भरपूर आलमी दबाव बढ़ने वाला है कि वो गजा के मजलूमों की जान बखशी करें अलावा अजी दो रियासती हल पर भी खूब बहसें छिड़ने वाली हैं बिलखसूस यूरोपियन मुालिक बावजूद इस इशू को खूब उठाएंगे जिसकी बड़ी वजह अमकी प्रेसिडेंट ट्रंप से इनकी छेड़छाड़ होगी क्योंकि ट्रंप टेरिफ के हाथों करीबी अमकी इत्तहादी इस अनोखे सदर से खासे नाला है ट्रंप बखशते किसी को भी नहीं हत्ता कि कभी बंजमन नैतननिया की भी थोड़ी बहुत झाड़फूंक लती लाई धुलाई या सजनश कर देते हैं लेकिन साथ ही जब उन्हें परेशान देखते हैं तो हौसला दिलाने के लिए सेक्रेटरी ऑफ़ स्टेट मार्को रूबियो को तलबीब या यरूशलम रवाना कर देते हैं जैसे कि हालिया अरब इस्लामिक समिट के दौरान मार्को रूबियो इसराइल में मौजूद रहे यह इत्मीनान दिलाते हुए कि फिक्र ना करो हम तुम्हारे साथ हैं अरब इस्लामिक समिट इताम पजीर होने के फौरन बाद मार्को रूबियो दोहा पहुंचे अमीर कतर से मिले और साफ फरमा दिया कि इन मुख्तलिफ नौ बड़कबाजों के झांसे में मत आइएगा इससे कब कतरी प्राइम मिनिस्टर को वाइट हाउस बुलाकर इनकी अच्छी खासी ब्रेन वाशिंग खातिर तवाजा या दलाई की जा चुकी है अमीर कतर के लिए गाजर के साथ स्टिक का इस्तेमाल करते हुए प्रेसिडेंट ट्रंप ने किसी मुंह रखी या भरम का भी कोई ख्याल नहीं रखा साफ कह दिया कि शेख तमीम आपके आवाम आपसे खुश नहीं है इधर-उधर की बड़ी-बड़ी छोड़ दें या सोचने की बजाय अपने लोगों की नाराजगी का सोें इनके मसाइल हल करने के लिए फिकरमंद हो जरा गौर फरमाइए इसका क्या मतलब है इन अल्फाज़ में क्या मलफूफ पैगाम है शायद इसी को कहते हैं अमकी प्रेशर अहले मगरब के सामने यह सवाल भी अहम है कि इसी क़तर पर जब ईरानी हमला हुआ था इस वक्त अगरचे ईरान के खिलाफ भी खासे मजमती बयानात आए थे मगर इस नौ की शोला बयानियों का गुलगला तब क्यों नहीं उठा था तब क़तर की अप्ला मुख्तारी खतरे में क्यों नहीं आई थी क्या इसलिए कि तब ईरानी हमले का हदफ कतरी नहीं गैर मुल्की अड्डा था मसला तो अब भी वही है इसराइली हमले का हदफ कतरी नहीं गैर मुल्की हमास की आदत थी जिन्हें इसराइल टेररिज्म के वैसे ही आदमी मुजरम गिरदानता है जैसे 91 के बाद अमेरिकी बिन लादन और इनकी अलकायदा को समझते हैं बेंजमिन नेतन याू का इस्तदलाल यही है कि जब अमेरिका ने बिन लादन जैसे टेररिस्ट को मारने के लिए पाकिस्तान पर हमला किया था तो पूरी दुनिया ने इसकी मजम्मत नहीं सताइश की थी आज हमने भी अपने ऊपर होने वाले सबसे बड़े टेररिस्ट अटैक के मुजरमों यानी हम्मास कयादत को टारगेट किया है तो इस साबका उसूल के तहत इसकी मजम्मत का भी कोई जवाब नहीं बनता है दुनिया को चाहिए कि वो टेररिज्म के खिलाफ एका करे यूरोपियन मुालिक की तरफ इशारा करते हुए उन्होंने कहा कि यह लोग उल्टे हमें आलमी तन्हाई में धकेल रहे हैं जो बरसों चल सकती है लिहाजा हमें अपने वसाइल के साथ अपने पांव पर खड़े होना पड़ेगा हम इस वक्त तक चैन से नहीं बैठेंगे जब तक हम अपने यमालियों को रिहा करवाते हुए टेररिस्ट हमास का खात्मा नहीं कर देते चाहे हमें इसकी जो भी कीमत चुकानी पड़े हर मुल्क को अपनी सरहदों से बाहर भी अपने दफा का हक हासिल है यह कहते हुए नेतन याऊ रियासतों की सोवनिटी का असूल बयान करना भूल गए हमारे बुलंद परवाज ने इसी समिट में अरब इस्लामिक टास्क फ़ोर्स या इस्लामिक नेटो की जो फुलझड़ी छोड़ी है अगरचे आवामी सतह पर वह जितनी चाहे क्लैपिंग ले लें बिलफेल या नाकाबिल अमल बड़क से आगे कुछ नहीं बुलंद बांग दावे जो भी हो वेस्टर्न मिलिट्री अलायंस के बिल मुकाबल इसी तर्ज पर इस्लामिक मिलिट्री अलायंस के लिए जिस नौ की ताकत दरकार है इसका तो शायद दूरदूर तक शबा तक नहीं फी जमाना मजहब की बुनियाद पर इस नौ के अलायसेस को दुनिया मौज हैरत हकारत से ही देख सकती है जबकि मुस्लिम अकवाम की अंदरूनी कदूरतें और मुनाफरत भरी फिरकाना मजहबी और सियासी तकसीम इसके अलावा पूरी गहराई के साथ मौजूद है हम पाकिस्तानियों के लिए बेहतर यही है कि हम अपनी डूबती मशत लड़ में डुबकियां खाते आवाम और इनके अनगिनत दुखों और मसाइलों मसायब को दूर करने का सोचें अकवाम आलम के सामने हमारी मुस्लिम अकवाम का मौकफ यह होना चाहिए कि टेररिज्म या दहशतगर्दी या आतंकवाद इंसानियत की मुश्तका दुश्मन है इसकी मुर्तकब कोई भी तंजीम हो तमाम अकवाम को बिला तमीज मजहबो नस्ल इसके खिलाफ खड़े होना पड़ेगा इसराइल को भी अपने वजूद की बका इतना ही हक असल है जितना किसी और मुल्कों कौम को रह गई बेगुनाह इंसानी हलाकतें वो चाहे मुसलमानों की हो या यह यहूद की हिंदुओं की हो या मसीहों की इनकी मुर्तकब कोई भी कौम तंजीम या पार्टी हो काबिल मजम्मत और नाकाबिल कबूल है मिडिल ईस्ट में दो रियासती हाल की बहस पर तनकी दी जाए
اظفر ریحان انسانیت کے نام پر دوحہ میں عرب اسلامی سربراہی اجلاس کا کارنامہ دوحہ میں عرب اسلامی ہنگامی سربراہی اجلاس منعقد ہوا جس میں 50 کے قریب عرب اور اسلامی ممالک کے سربراہان یا نمائندوں نے شرکت کی۔ یہاں کی گئی تقاریر میں اس بات پر زور دیا گیا کہ اسرائیل نے تمام سرخ لکیریں عبور کر لی ہیں۔ اسرائیل کو اقوام متحدہ کے چارٹر اور عالمی قوانین کی خلاف ورزی پر جوابدہ ہونا چاہیے۔ قطر کے امیر شیخ تمیم بن حمد ثانی نے کہا کہ گریٹر اسرائیل کا ایجنڈا عالمی امن کے لیے خطرہ ہے۔ قطر نے سلامتی کے طور پر خطے میں امن کے لیے مخلصانہ کوششیں کیں لیکن اسرائیل نے اپنے غدارانہ اقدامات کا مظاہرہ کرتے ہوئے حماس کی قیادت کو نشانہ بنایا۔ خطے کے مالک کی خود مختاری پر اسرائیل کا حملہ قابل مذمت ہے۔ اسرائیل کی طرف سے فلسطینیوں کی نسل کشی کی جا رہی ہے۔ یہ اسرائیل کی تمام حدیں پار کر چکا ہے۔ اسرائیلی باغی قطری کی پرامن رہائی کے تمام دعوے جھوٹے ہیں۔ ایرانی صدر نے کہا کہ اقوام متحدہ سے اسرائیل کی حیثیت منسوخ کی جائے۔ پاکستانی وزیر اعظم نے کہا کہ مسلم اقوام کی مشترکہ ٹاسک فورس بنائی جائے اور دو ریاستی حل پر عمل درآمد کو یقینی بنایا جائے۔ انہوں نے کہا کہ اگر اسلامی ممالک اب بھی متحد نہ ہوئے تو تاریخ ہمیں معاف نہیں کرے گی۔ ترک صدر نے کہا کہ اسرائیل سمجھتا ہے کہ کوئی اس پر سوال نہیں اٹھا سکتا۔ اس عرب اسلامی سربراہی اجلاس سے عرب لیگ اور او آئی سی کے سیکرٹری جنرلز کے علاوہ ایران، عراق، مصر اور فلسطینی اتھارٹی کے نمائندوں نے بھی خطاب کیا۔ تاہم قطر کے پڑوس میں طاقتور عرب ممالک بالخصوص سعودی عرب، متحدہ عرب امارات، کویت، بحرین، اردن اور شام نے انتہائی احتیاط سے کام لیا اور بیان بازی پر اعتراض کیا۔ عرب اسلامی سربراہی اجلاس کے اختتام پر متحدہ اسلامی ممالک نے دوحہ پر مکمل یقین کا اظہار کرتے ہوئے کہا کہ ہم ممکنہ انتقامی کارروائی کے لیے نامعلوم حمایتی ہیں، ایک غیر جاندار فوجی مرکز کو نشانہ بنانا امن کے اقدامات کو سبوتاژ کرنے کے مترادف ہے، قطر کے ذہین اور سمجھدار کردار کی تعریف، مصر اور امریکا کی جاری فوجی کارروائیوں کو دنیا میں نارمل پالیسیوں کا استعمال کرتے ہوئے اسرائیل اور اسرائیل کی پالیسیوں کو نارمل پالیسی قرار دیا گیا۔ اسلحے کے طور پر محاصرے اور بھوک کو جنگی جرم قرار دیتے ہوئے فلسطینی علاقوں کو آباد کرنے یا ہجرت پر مجبور کرنے کے کسی بھی ممکنہ اسرائیلی فیصلے کی مذمت کرتے ہوئے عالمی برادری پر زور دیا گیا کہ وہ قطر، غزہ، مغربی کنارے اور دیگر علاقوں میں جاری تنازعات کو روکنے کے لیے اقوام متحدہ کی جنرل اسمبلی، نیویارک میں حالیہ اعلان کا خیرمقدم کرتے ہوئے مشرق وسطیٰ کو صاف ستھرا بنانے کے لیے دو طرفہ حل کی ضرورت پر زور دیا۔ غیر قانونی ہتھیاروں سے پاک تباہی داعش اپنے اہل علم کے لیے چند اہم نکات پیش کرتا ہوں، دعا ہے کہ میں اسے بے نقاب کر دوں۔ وہ تمام اشتعال انگیز بیانات پڑھیں جو عرب اسلامی سربراہی اجلاس میں ہونے والی بحث کی بنیاد تھے۔ اس کے بعد جاری ہونے والی مشترکہ اسلامی سربراہی کانفرنس کی عمومی خبروں پر بھی ایک نظر ڈالیں۔ آپ کو اندازہ ہو گا کہ بہت سے اشتعال انگیز بیانات سستی تشہیر یا دکھاوے کے لیے دئیے جاتے ہیں جن کی اہمیت اس قدر بھی نہیں کہ مشترکہ اسلامی سربراہی اجلاس کا حصہ بنایا جائے۔ خاص طور پر پاکستانی الفاظ شاید دوسری عرب اقوام یا اسلامی حکمرانوں سے زیادہ بھرے ہوئے ہیں۔ اس کے مقابلے میں شاید جس میزبان ملک کو نشانہ بنایا جا رہا ہے وہ بھی اس حد تک جانا پسند نہیں کرتا، حالانکہ ہمارے پاکستانی حکمران مفروروں کی رہائی کے لیے ان پر زور لگاتے پائے جاتے ہیں۔ ہمارے موجودہ جہادی حکمرانوں کو اس فعل کا نشانہ ضرور بنایا جانا چاہیے۔ پاکستانی رہنماؤں کے سنسنی خیز بیانات شاید کسی نہ کسی طرح اپنے اسلامی لوگوں کو مطمئن کرنے یا ان کی بڑھتی ہوئی مذہبی خواہشات کی تسکین کے لیے بنائے گئے ہیں۔ اب اگر ہمارا میڈیا شہ سرخیوں پر غور کریں، چاہے پرنٹ ہو، الیکٹرانک ہو یا سوشل میڈیا، تو ایسا محسوس ہوتا ہے کہ ایک انقلاب آگیا ہے، اور عالم اسلام کفر کے خلاف متحد ہو گیا ہے۔ اس لیے اسرائیل اب خطرے میں ہے۔ بلکہ ہماری عوامی صلیبی جنگ یہ ہے کہ اے مسلمانو متحد ہو کر اسرائیل کے ناپاک وجود کو روئے زمین سے مٹا دو۔ احتجاج کی آوازیں پاکستان سے نہیں اسلامی ایران سے اٹھ رہی ہیں بلکہ اعلیٰ ترین سطح سے اٹھ رہی ہیں۔ تاہم ایران اسرائیل جنگ کے بعد اس میں کچھ جمود آ گیا ہے۔ جہاں تک رضا کے عرب عوام پر اسرائیلی مظالم کا تعلق ہے تو اس میں کوئی شک نہیں۔ اس پر پوری دنیا میں نہ صرف مسلمان بلکہ غیر مسلم بھی شدید احتجاج کر رہے ہیں۔ ویٹی کن سٹی سے بھی دردناک بیانات آتے رہتے ہیں۔ یورپی شہری اور ان کے لوگ بھی کھل کر بول رہے ہیں۔ عرب اسلامک سمٹ کے بعد اگر ہمارے عام لوگ سمجھتے ہیں کہ اب ایک بہت بڑا اسلامی طوفان اٹھے گا تو کیوں نہیں؟ بات یہ ہے کہ اگر وہ موجودہ حالات پر نظر رکھیں تو انہیں معلوم ہونا چاہیے کہ غزہ کے مظلوم عوام عرصہ دراز سے چکی کے دو حصوں کے درمیان پسے ہوئے ہیں۔ 50 مسلم لیڈروں کے قتل کے بعد بھی انہیں اسی طرح کچلنے کا سلسلہ جاری ہے۔ وہ اسی دردناک خشک سالی کا شکار ہو رہے ہیں۔ درویش سے کہا جاتا ہے کہ زیادہ سچ نہ لکھو۔ اچھا، جتنا چاہو لکھو، لیکن کیا یہ تلخ زمینی حقائق کو مٹا سکے گا؟ اگر ہمارے بزرگ اسرائیل کو تباہ کر سکتے تو یہ اس کی پیدائش سے بہت پہلے ہی تباہ ہو چکا ہوتا۔ درویشوں کی نظر میں دنیا میں سعودی عرب سے بڑھ کر کوئی اسلامی ملک نہیں جو اسلام کا باپ اور اسلام کا مرکز ہو۔ میں یہ تلاش کر رہا تھا کہ سعودی قیادت نے اس عرب اسلامی ملک میں کیا کیا ہے اور پھر ہاشمی سلطنت کے وارث، خاندانِ نبوی کے چشم و چراغ محترم شاہ عبداللہ ڈوم نے کیا رہنمائی فراہم کی ہے۔ پہلی نظر کی خدمت میں ایک اور دلچسپ نکتہ۔ یہ بات قابل توجہ ہے کہ جب بھی یہ
خواہ وہ عوامی سطح پر جتنی چاہیں تالیاں حاصل کر لیں لیکن ان کی ناکامی یا نا کامی ایک بڑی بات سے زیادہ کچھ نہیں۔ بلند و بانگ دعوے جتنے بھی ہوں، مغربی ملٹری الائنس کے مقابلے میں، انہی خطوط پر اسلامی فوجی اتحاد کے لیے جو طاقت درکار ہے، وہ شاید دور دور تک نظر نہیں آتی۔ دنیا صرف مذہب کی بنیاد پر اس اتحاد کے اتحادیوں کو حیرت اور نفرت کی نگاہ سے دیکھ سکتی ہے جب کہ امت مسلمہ کی اندرونی خرابیاں اور نفرت انگیز فرقہ وارانہ، مذہبی اور سیاسی تقسیم پوری گہرائی میں موجود ہے۔ ہم پاکستانیوں کے لیے بہتر ہے کہ اس ڈوبتی جدوجہد میں ڈوبے ہوئے اپنے لوگوں کے مسائل اور ان کے ان گنت دکھوں اور مسائل کے حل کے لیے سوچیں۔ دنیا کے سامنے ہماری امت مسلمہ کا موقف یہ ہونا چاہیے کہ دہشت گردی یا دہشت گردی یا دہشت گردی انسانیت کی سب سے بڑی دشمن ہے۔ اس سے کوئی فرق نہیں پڑتا ہے کہ کوئی بھی تنظیم اسے انجام دے رہی ہے، تمام برادریوں کو بغیر کسی آداب کے نقصان پہنچایا جانا چاہئے۔ نسل کو اس کے خلاف کھڑا ہونا پڑے گا۔ اسرائیل کو بھی اپنے وجود کے دفاع کا اتنا ہی حق حاصل ہے جتنا کہ کسی دوسرے ملک یا کمیونٹی کو۔ جو بے گناہ انسانی موتیں رہ گئی ہیں، خواہ وہ مسلمانوں کی ہوں یا یہودیوں کی، ہندوؤں کی ہوں یا عیسائیوں کی، ان کی اموات خواہ وہ کسی بھی برادری، تنظیم یا جماعت کی ہوں، قابل مذمت اور ناقابل قبول ہیں۔ مشرق وسطیٰ میں دو ریاستوں کے بارے میں حالیہ بحث پر توجہ دی جانی چاہیے۔
The provided text, an excerpt from a YouTube video transcript by , primarily offers a critical analysis of contemporary global political events, with a specific focus on the Israel-Palestine conflict and United Nations proceedings. The author begins by discussing the difficulty of selecting topics given the current political climate, quickly moving to criticize the media’s one-sided reporting on issues like the defense agreement between Pakistan and Saudi Arabia. The core of the discussion scrutinizes the possibility of a Palestinian state being established, arguing that while theoretically no one, including the U.S. and Israel, opposes it, the actions of groups like Hamas have made the realization of a state unlikely. Furthermore, the source provides a detailed critique of U.S. President Donald Trump’s controversial speech at the UN General Assembly, condemning his rhetorical style and his criticisms of European immigration policies and the UN itself.
The Struggle for Palestinian Statehood
Palestinian statehood is a complex topic discussed in the sources, focusing primarily on international sentiment, historical attempts, and the impact of recent events and the role of Hamas.
International Support and Aims
The sources indicate that, in principle, no one in the world opposes the establishment of a separate Palestinian state in the land of Canaan (Khata-e-Kanan) or the land of Israel (Khata-e-Israel)—a stance that includes both the United States and Israel.
Many powerful countries have reportedly issued statements in favor of establishing a Palestinian state, including European nations like England, France, and Germany, as well as Canada, Australia, and Portugal.
Historically, it was the US that worked to convince Israel on this matter, leading to formal agreements and negotiations with the Palestine Liberation Organization (PLO).
Historical and Negotiated Progress
Several key moments were identified as steps toward realizing statehood:
1948 Establishment: A separate Palestinian state was theoretically established by Britain at the same time as the Israeli state. However, the sources note that the Arabs themselves refused to accept this plan and subsequently launched an attack on Israel.
Palestinian Authority (PA): The creation of the Palestinian Authority under Yasser Arafat and later Mahmoud Abbas (Abu Mazen) was viewed as a concrete, practical step toward establishing a separate Palestinian state.
Conditions for Statehood: This progress was contingent upon the Palestinians recognizing Israel and refraining from attacking its security.
Gaza Withdrawal (2005): The negotiation process led to the Israeli Prime Minister Sharon being forced (due to US pressure) to end the occupation and hand Gaza over to the Palestinian Authority in 2005. This resulted in millions of Jews leaving their fortified homes in tears. The sources also note that prior to 1967, Gaza was not held by any Palestinian authority but was part of the capital territory of the Arab Republic of Egypt.
Despite these opportunities, the sources ask who the elements were that sabotaged the renewed progress toward a separate Palestinian state following the 1993 agreement, which was facilitated by American goodwill.
Current Obstacles and Future Doubts
The sources point to current geopolitical realities and the actions of Hamas as major impediments to statehood:
Hamas’s Actions: The attacks of October 7th by Hamas are seen as having destroyed all agreements that had been reached between Israelis and Palestinians under American guidance.
Loss of Trust: Following this “bitter experience,” the sources express doubt that the previous American and Israeli trust can ever be restored. Consequently, the view is put forward that no such state will be established now.
Rewarding Terrorism: Former US President Trump’s viewpoint was mentioned, suggesting that recognizing a Palestinian state under current conditions would be a gift or reward for Hamas.
International Conditions for Recognition: The Italian Prime Minister stated that Italy would not recognize any Palestinian state until the government of Hamas is separated (or removed), despite facing considerable domestic pressure on the issue.
The Conflict: The ongoing conflict is characterized as the helpless Palestinian people being crushed like wheat between the two millstones of Hamas and Israel. A ceasefire is currently being delayed because of the need for Hamas to release all Israeli hostages.
Media and Propaganda
The sources challenge the prevailing media narrative which suggests that “Jews and Christians” have formed a unified alliance of hatred (“Al Kuff Millat Wahida”) to prevent the establishment of a Palestinian state. The text contends that this notion is propagated unfairly, suggesting that the root causes of the failure lie in internal historical rejections and subsequent sabotage.
Trump’s Criticism and UN General Assembly Debates
The sources discuss the UN General Assembly (UNGA) primarily in the context of recent global debates, US President Donald Trump’s controversial address, and discussions surrounding the Gaza conflict and illegal immigration.
General Context and Focus
The UN General Assembly sessions, along with the address by President Donald Trump, were identified as a main topic of interest in the sources. The sources specifically mention the “colorful global debates” (रंगारंगी आलमी बहसों) that occur within the UN General Assembly.
Criticism of the UN and its Role
President Trump used his address and platform to severely criticize the United Nations, characterizing it as a “failed and useless organization” (नाकामो नकारा इदारा).
Key criticisms leveled at the UN by Trump, according to the sources, include:
Failure to Cooperate on Peace: Trump claimed that he had worked diligently as the American President to establish peace (citing ceasefires between Pakistan and India, and in seven countries), but the UN—the global institution responsible for this work—did not cooperate with him at all.
Patronage of Illegal Immigration: Trump asserted that the UN agency has become a patron of illegal immigrants (गैर कानानूनी तारकीने वतन का सरपरस्त). He alleged that the UN is orchestrating an attack by these people on Western countries, under the pretense of settling migrants, while the institution’s core objective was the establishment of world peace.
Moral Responsibility: Trump also claimed that China and India were responsible for the deaths of thousands of innocent people in Ukraine because they continued to purchase Russian fuel.
President Trump’s UNGA Address
The sources highlight the controversial nature of President Trump’s address at the UNGA, noting that he was threatening his opponents and the entire world while standing there. Specific details about his conduct and statements include:
Suppression of Free Speech: A question was raised as to why the microphone was being shut off during the speeches of other world leaders at the UN General Assembly, particularly given that the US is supposedly the world’s leading proponent of freedom of expression.
Personal Attacks: Trump was criticized for displaying such a “small-mindedness” (छोटापन) that he would attack the elected Mayor of London, Sadiq Khan, during his speech in the UNGA. He claimed Khan was ruining the city and trying to impose Sharia law.
Immigration Warning: Trump warned that European nations like Greece, Germany, and Switzerland were turning their countries into “hell” by opening their borders to illegal immigrants.
Interactions and Discussions within the UNGA Context
The sources indicate that the UNGA served as a key location for discussions and anticipated meetings related to the Gaza conflict:
Anticipated Meeting: There was considerable anticipation that a special meeting would occur during the UNGA session involving six Arab Muslim rulers and President Trump.
Hope for Ceasefire: It was hoped that these influential rulers would be able to convince the American President to enforce a ceasefire in Gaza.
Clashes of Leaders: Details were reportedly observed regarding the “squabbles and bickering” (नोकझोंक और छेड़छाड़) that took place during the speeches delivered by Turkish President Erdogan and Israeli Prime Minister Netanyahu at the UN General Assembly.
Palestinian Statehood: Trump’s view that recognizing a Palestinian state under current conditions would be a gift or reward for Hamas was mentioned in the context of the proceedings.
Trump’s Controversial UN Address and World View
Donald Trump is discussed extensively in the sources, primarily concerning his controversial address at the UN General Assembly (UNGA), his severe criticism of international bodies, his claims regarding global peacekeeping, and his stance on Palestinian statehood.
The Controversial UN General Assembly Address
President Trump’s address at the UN General Assembly was a central topic of discussion in the sources, characterized as “unsettling or surprising” (pareshank ya hairank) and even “meaningless” or “absurd” (laayaani).
Behavior and Conduct:
While delivering his address at the UN, Trump was described as “threatening his opponents and the entire world”.
The sources questioned why the microphone was being shut off during the speeches of other world leaders at the UN General Assembly, especially since America is considered the greatest “propagator and champion of freedom of expression” worldwide.
Personal Attacks and “Small-mindedness”:
Trump was criticized for displaying such “small-mindedness” (chotaapan) that he attacked the elected Mayor of London, Sadiq Khan, during his UNGA speech.
He alleged that Khan was ruining London, a beautiful cultural city, and trying to impose Sharia law.
He also claimed that Khan had given London over to the control of immigrants.
The sources noted that Trump had previously made similar remarks about an Asian-origin candidate for the Mayor of New York in Medship.
Criticism of the UN and Immigration Policy
Trump used his platform to deliver severe criticism, characterizing the United Nations as a “failed and useless organization” (naakaamo nakaara idaara).
UN and Immigration:
Trump asserted that the UN agency has become the “patron of illegal immigrants” (ghair kaanaanuni taarikine watan ka sarparast).
He alleged that the UN is orchestrating an “invasion” (yalgaar) of these people on Western countries under the guise of settling migrants, despite the UN’s core objective being the establishment of world peace.
He warned that European nations like Greece, Germany, and Switzerland were turning their countries into “hell” by opening their borders to illegal immigrants.
He claimed that the jails in these European countries were filled with criminals who entered through illegal immigration.
Claims of Peacekeeping and Global Responsibility
Trump claimed that he, as the American President, had done more work for “the establishment of peace” than the UN.
He cited achieving a ceasefire between Pakistan and India.
He listed seven other countries where, according to his claims, he enforced a ceasefire or truce.
He specifically complained that the UN, which is the major global institution responsible for peace, “did not cooperate with him at all” in this work.
In a different critical vein, Trump claimed that China and India were responsible for the deaths of thousands of innocent people in Ukraine because they continued to purchase Russian fuel. The sources questioned whether this kind of language was appropriate for an American President.
Stance on Palestinian Statehood
A key viewpoint held by Trump regarding the Israel-Palestine conflict was highlighted:
He suggested that recognizing a Palestinian state under current conditions would be a “gift or reward for Hamas”.
Diplomatic Interactions and Public Perception
There was anticipation that a special meeting would occur during the UNGA session involving six Arab Muslim rulers and President Trump. It was hoped that these influential rulers would be able to convince the American President to enforce a ceasefire in Gaza.
The sources noted that traditional flatterers (rawayati khushamadi) went to extremes in their flattery (khushamad ki hadd kar di), praising Trump as the “greatest champion of peace” (aman ka dai aalam bardar) in the world, claiming he was ending wars globally and highlighting the ceasefire with India as a great favor (ehsaan azeem).
Saudi Arabia and Pakistan: Defense and MbS Reforms
The discussion of Saudi Arabia in the sources focuses on the relationship between Saudi Arabia and Pakistan, the character of the current leadership, and the postponement of a critical review of a defense agreement.
The Pakistan-Saudi Defense Agreement
The sources state that the author’s original intention was to discuss the “fruits of the Pak-Saudi defense agreement”. However, this discussion was ultimately deferred, as a critical review of the defense deal or agreement between the Kingdom of Saudi Arabia and Pakistan was deemed to require a separate, dedicated article.
Regarding media coverage of this agreement:
The sources criticize the media for presenting a “one-sided emotional picture”.
It is suggested that the narrative of an “Islamic NATO” is being propagated to appeal to the political interests of the established powers.
Affection and Leadership
The sources express “full love” for Saudi Arabia, mentioning the holy sites, such as the Baladul Ameen.
Particular attention is given to the current Saudi leadership:
The current Saudi ruler, Crown Prince Muhammad bin Salman (MbS), is described as a “charismatic personality”.
MbS is praised for undertaking “revolutionary steps” intended to transform his country’s conservatism into modernity and progress.
The author states that they have been a vocal supporter (hamnumai) of the Crown Prince’s planning and execution of reforms from the very first day.
Hamas, Hostages, and the Collapse of Israeli-Palestinian Peace
The sources discuss the Hamas-Israel conflict primarily through the lens of recent events, the destruction of existing agreements, international efforts toward a ceasefire, and the role of HamasThe sources discuss the Hamas-Israel conflict primarily through the lens of recent events, the destruction of existing agreements, international efforts toward a ceasefire, and the role of Hamas as a significant obstacle to peace and Palestinian statehood.
The Impact of October 7th
The sources identify the October 7th attacks by Hamas as a pivotal moment that fundamentally altered the dynamics of the conflict:
Hamas’s actions on October 7th are stated to have “destroyed all agreements” (tiya panca kar dala hai) that had been reached between Israelis and Palestinians under American guidance.
Following this “bitter experience” (salḳ tağribah), doubt is expressed that the previous American and Israeli trust can ever be restored. Consequently, the sources conclude that no Palestinian state will be established now.
Obstacles to Ceasefire and Peace
The immediate issue stalling a ceasefire is the fate of the hostages held by Hamas:
The current conflict is stuck because “the problem is the same: until the dog leaves the well, how can the well be clean?”.
A ceasefire is being delayed and “will remain a victim of delay” (iltwa ka shikaar rahegi) until Hamas releases all Israeli hostages (tamam isriliy yajmaliyon ko riha nahi karta).
The sources question why influential Arab Muslim rulers meeting at the UN General Assembly “cannot put a bridle on Hamas” (Hamas ko kyon lagaam nahi daal sakte).
The sources criticize Hamas for keeping the hostages, noting that if 20 Israeli hostages are alive and the bodies of 28 or 38 Israeli hostages are also being held, keeping them is a “barbaric act devoid of humanity” (insaniyat se guri hui gunaani harkat nahi hai).
The question is raised as to what Hamas ultimately desires, given the immense human devastation and the thousands of Palestinians killed.
International Views and Diplomacy
The conflict was a major topic during the UN General Assembly session, spurring diplomatic efforts and statements:
There was anticipation that six Arab Muslim rulers would hold a special meeting with US President Trump during the UNGA session, with the hope that these influential leaders could “convince the American President to enforce a ceasefire in Gaza”.
The Prime Minister of Italy stated that Italy would not recognize any Palestinian state until the government of Hamas is separated (or removed).
Former US President Donald Trump’s view was noted: recognizing a Palestinian state under current conditions would be a “gift or reward for Hamas”.
The Emir of Qatar was quoted as making a critical comment about Israel’s policy, stating that “killing opponents after inviting them for negotiations is the policy of Israel”.
Details were observed regarding the “squabbles and bickering” (nokjhoṇk aur chheṛchhāṛ) that took place during the speeches delivered by Turkish President Erdogan and Israeli Prime Minister Netanyahu at the UN General Assembly.
The Plight of Palestinians
The sources characterize the situation of the Palestinian people caught in the conflict as helpless:
The “helpless Palestinian people” (bebas filistini awam) are being “crushed like wheat” (gehū̃ ki tarah pise ja rahe hain) between the two millstones of Hamas and Israel.
Media and Propaganda
The sources also address the handling of the conflict in the media:
The sources criticize the media for not highlighting the humanitarian issue surrounding the hostages held by Hamas.
The prevailing media narrative that “Jews and Christians” (Yahud-o-Nasara) have formed an alliance of hatred (Al Kuff Millat Wahida) to prevent the establishment of a Palestinian state is challenged as unfair propaganda.
इंसानों के नाम अफजार रिहान यूएन का आलमी रोल और प्रेसिडेंट ट्रंप आज मौजुआत की इस कदर भरमार है समझ नहीं आ रही कि किस पर कलम उठाया जाए और किसे नजरअंदाज कर दिया जाए दरवेश की हमेशा यह तमन्ना होती है कि सिर्फ इन्हीं इश्यूज को उठाया जाए जहां कोई कजी या टेढ़ हो जहां हमारा मीडिया हालातो वाक्यात की याक रुखी तस्वीर पेश कर रहा हो तो वहां लाजमन तस्वीर का दूसरा रुख वाज़ किया जाना चाहिए जिसकी बुनियाद सिर्फ और सिर्फ ह्यूमन इंटरेस्ट हो लेकिन अगर हमारा स्वाद आजम दुरुस्त समत में जा रहा हो तो वहां अपनी डेढ़ मरले की अलग मस्जिद बनाना या मौबे दरैन के लिए वाजे हकाय की जिगली करते जाना ना सिर्फ अपने बल्कि अमतुनास के औकात का जिया महसूस होता है आज इरादा तो पाक सऊदिया दफाई मुयदे के समररा पर बहस करने और इनका तनकीदी जायजा लेने का था बिलखसूस इसलिए कि हमारा मीडिया इसकी बहुत यख रुखी जज्बाती तस्वीर कशी कर रहा है बहुत से सवालात हकायक हैं जिन पर ना किसी का ध्यान जा रहा है ना उन्हें कोई ज़रे बहस ला रहा है बल्कि अपने आतुल मुस्लिमीन को बेवकूफ बनाने के लिए किसी इस्लामी नेटो के ज़हूर की कहानियां गड़ी जा रही हैं यह सराबकि हमारी ताकतवर इस्टैब्लिशमेंट के सियासी मफाद में जाता है लिहाजा इस नो का सौदा खूब बेचा और खरीदा जा रहा है बिलाश सऊदी अरब से हम सब भरपूर मोहब्बत रखते हैं हजाजी अज़ मुकद्दस बलादुल अमीन हो या इसराइलीनानी अज़ मुकद्दस यरूशलम हो तीनों जतून या तुरसीना हो इनकी मोहब्बतें ना चीज़ के खून में मोजन है और फिर सऊदिया के मौजूदा हुक्मरान क्राउन प्रिंस इज्जत मा मोहम्मद बिन सलमान तो एक शमाती शख्सियत हैं जो अपने मुल्क की कदामत पसंदी को जिद्द और तरक्की में बदलने के लिए इंकलाबी इदामात उठा रहे हैं यह दरवेश रोजे अवल से इनकी हमनुमाई और पेशबंदी में अहम आवाज उठाते चले आ रहा है किंगडम ऑफ सऊदी अरेबिया और पाकिस्तान के दरमियान तय पाने वाली दफाई डील या मुदे पर बहस किसी अलग आर्टिकल की मुतकाजी है इसलिए उसे तभी तक के लिए उठाए रखे हैं आज का मौजू यूएन जनरल असेंबली में होने वाली रंगारंगी आलमी बहसों बिलखसूस अनोखे अमकी प्रेसिडेंट डोनाल्ड ट्रंप के परेशानक या हैरानक खिताब का जायजा होना चाहिए और यह भी कि क्या वाकई कोई फिलिस्तीनी रियासत ख्ता-ए-कनान या ख़्ता इसराइल में बिल फेल बनने जा रही है जिस तरह यह शोर है कि इंग्लैंड फ्रांस और जर्मनी जैसे ताकतवर यूरोपी मुालिक ही नहीं कनाडा ऑस्ट्रेलिया और पुर्तगाल जैसे मुालिक भी फिलिस्तीनी रियासत कायम करने के हक में बयानात दे रहे हैं अगर असूली तौर पर देखा जाए तो ख्ता-कनान में अलग फिलिस्तीनी रियासत के कयाम का दुनिया में मुखालिफ कोई भी नहीं है अमेरिका और इसराइल भी नहीं क्योंकि ये अमेरिका ही था जिसने इस हवाले से इसराइल को कायल करते हुए पीएलओ से मजाकात ही नहीं बाजाप्ता मुयदे भी करवाए थे यासिर अरफाज और अबू माजन महमूद अब्बास की कयादत में फस्तीनी अथॉरिटी का कयाम दर हकीकत अलग फस्तीनी रियासत की तरफ ठोस अमली पेशरफ्त थी शर्त मौज यह थी कि आप लोग इसराइल को तस्लीम करते हुए इसकी सलामती पर हमलावर नहीं होंगे यह इसी मजाकराती प्रोसेस का सम था जिसने 2005 में इसरली प्राइम मिनिस्टर शेरून को मजबूर किया अमेरिका ने 40 बरस कब इसका कब्जा खत्म करवाते हुए गजा फस्तीनी अथॉरिटी को सौंप दिया हत्ता के लाखों यहूद रोते हुए अपनी मजबूत किला नुमा रहशगाहें छोड़ते हुए यहां से अमकी दबाव पर निकले यह अम्र भी वाज़ रहे कि 1967 से कब भी यह ख्ा किसी फिलस्तीनी अथॉरिटी के पास नहीं था बल्कि अरब रिपब्लिक इजिप्ट की राजदानी का हिस्सा था हमारे मीडिया में नारवा तौर पर यह प्रोपोगेंडा है कि जैसे यहूदो नसारा ने हम मुसलमानों के खिलाफ किसी नौक का कोई नफरत भरा एकका कर रखा है अल कुफ मिल्लत वाहिदा जैसे स्लोगन बुलंद करते हुए इस नौ का शदीद इस्तलाल किया जाता है कि वो सब इकट्ठे होकर बेचारे फिलिस्तीनी मुसलमानों को मरवा रहे हैं और इनकी अलग फिलिस्तीनी रियासत बनने नहीं दे रहे हमारे इन भोले सादा लो अहबाब पर वाज़ होना चाहिए कि असूली तौर पर अलग फ़िलस्तीनी रियासत का कयाम 1948 में इसी वक्त कर दिया गया था जब इसराइली रियासत का कयाम वकूफ पज़र हुआ और इसी बर्तनानिया ने किया जिसने इसराइल और पाकिस्तान मजहब के नाम पर बनवाए लेकिन वो क्या आमल थे जिनके कारण तब खुद अरबों ने उसे कबूल करने से इंकार करते हुए यकबार्गी नजायदा इसराइल पर यलगार कर दी और फिर 1993 में अमकी मेहरबानी से उस मुहदा कराते हुए दोबारा अलग फिलिस्तीनी रियासत की तरफ पेशर भी तो उसे दोबारा सबूताई करने वाले कौन से अनासिर थे अगर हम इसकी तफसील में जाएंगे तो यूएन में होने वाली दिलचस्प तारीर बिलखसूस प्रेसिडेंट ट्रंप के लायानी खिताब का मोहकात्मा नहीं कर सकेंगे जो यूएन में खड़े होकर अपने मुखालफिन को ही नहीं पूरी दुनिया को धमका रहे थे और हद है कि इनका अपना टेलीप्रटर तो खराब हुआ या जो भी कहानी थी अकवामेदा की जनरल असेंबली में खिताब करते हुए दीगर आलमी लीडरान की तकरीर पर माइक क्यों बंद किया जा रहा था अमेरिका तो दुनिया भर में आजादी इज़हार का सबसे बड़ा प्रचार को आलम बरदार है तो फिर मुखालफाना आवाजों पर यह सलूक करते हुए आप अकवामे आलम और इन पर मुसल्लत इस्तबदादी कुतों को क्या पैगाम दे रहे हैं क्या अमकी प्रेसिडेंट इतना छोटापन भी दिखा सकता है कि वो यूएन जनरल असेंबली में खड़े अपने तई दिल की बातें करते हुए लंदन के मुंतखब मेयर पर चढ़ाई कर दे ये कहते हुए कि सादर खान लंदन जैसे खूबसूरत तहजीबी शहर को बर्बाद कर रहा है वो लंदन में शरीयत नाफज़ करना चाहता है उसे इमीग्रेंट्स के कंट्रोल में दे चुका है और मैं आइंदा वहां नहीं जाऊंगा मा कब्ल इसी नो के अल्फाज़ उन्होंने न्यूयॉर्क में मेडशिप के एशियाई नियाद उम्मीदवार के मुतलिक भी कहने शुरू कर दिए थे यहां यूएन में ट्रंप कह रहे थे कि यूरोपीय मुालिक गैर कानानूनी तारकीने वतन के लिए सरहदें खोलकर अपने मुालिक को जहन्नुम बना रहे हैं यूनान जर्मनी स्विट्जरलैंड और दीगर यूरोपीय मुालिक की जेलों में जरा पेशा गैर कानूनी इमीग्रेशन से पहुंचे हुए कैदी हैं यूएन का अदारा गैर कानानूनी तारकीने वतन का सरपरस्त बन चुका है यह मुहाजरीन को बसाने के नाम पर वेस्टर्न कंट्रीज पर अपने इन लोगों की यलगार करवा रहा है जबकि इस अदारे का असल मकसद दुनिया में अमन का कयाम था प्रेसिडेंट ट्रंप ने यूएन पर शदीद तनकीद करते हुए कहा कि मैंने अमेकी प्रेसिडेंट की हैसियत से कयाम अमन के लिए ज्यादा काम किया है पाकिस्तान और इंडिया में फायरबंदी से लेकर उन्होंने सात मुालिक के नाम गिनवाए जहां ट्रंप के बकौल उन्होंने जंगबंदी करवाई लेकिन जिस बड़े आलमी इदारे का यह काम था यानी यूनाइटेड नेशन इसने इस काम में मेरे साथ जरा भी तामन नहीं किया यह एक नाकामो नकारा इदारा है चाइना और इंडिया रशियन ईंधन खरीदते हुए यूक्रेन में हजारों बेगुनाहों की अमवात के जिम्मेदार हैं सवाल पैदा होता है कि क्या किसी अमकी प्रेसिडेंट को इस नौ की जुबान या अल्लाम तराशी जेब देती है अलबत्ता इनकी एक बात दिलचस्प थी कि मौजूदा हालात में फिलस्तीनी रियासत को तस्लीम करना हमा के लिए तोहफा या नाम होगा अमीर कतर ने खूबसूरत बात कही कि मजाकात पर बुलाकर मुखालफीन को कत्ल करना इसराइल की पॉलिसी है हम यहां यूएन में गजा जंग रुकवाने और इसराइली यरगमालियों को छुड़वाने के लिए आए हैं इटली के प्राइम मिनिस्टर ने कहा कि हमास की हुकूमत से अदगी तक हम किसी फिलिस्तीनी रियासत को तस्लीम नहीं करेंगे हालांकि इन पर अपने मुल्क में इस हवाले से खासा दबाव है अभी पिछले रोज मैलान में फिलिस्तीनी रियासत के लिए खून रेज झड़पें हुई हैं जिनमें 60 के करीब इटालियन पुलिस वाले जख्मी हुए अमेरिकी रहनुमाई में इसराइलियों और फिलस्तीनियों में अब तक जितने भी मुहायदे हुए हैं हमास ने 7 अक्टूबर के इदाम से इन सब का तिया पंचा कर डाला है इस सल्ख तजुर्बे के बाद दरवेश को नहीं दिखता कि वो साबका अमकी और इसराइली एतमाद कभी दोबारा बहाल हो सकेगा नतीजातन ऐसी कोई रियासत अब बिल फेल कभी ना बन सकेगी इस सिलसिले में यूएन जनरल असेंबली में तुर्क प्रेसिडेंट अर्दवान और इसराइली प्राइम मिनिस्टर नेतन याू की तकारीर में होने वाली नोकझोंक और छेड़छाड़ की तफसीलात मुलाहजा की जा सकी हैं जो खासी दिलचस्प है कई रोज से बहुत शोर था कि यूएन जनरल असेंबली इजलास के दौरान छ अरब मुस्लिम हुक्मरानों की अमकी प्रेसिडेंट ट्रंप के साथ खुसूसी मुलाकात होने जा रही है उम्मीद की जा रही थी कि यह बासर हुक्मरान अमेरिकी प्रेसिडेंट को गजा जंगबंदी पर कायल कर लेंगे लेकिन मसला वही जब तक कुत्ता कुएं से ना निकले कुआं पाक कैसे होगा जब तक हमास तमाम इसरलीय जमालियों को रिहा नहीं करता ये जंगबंदी भी इल्तवा का शिकार रहेगी सवाल यह है कि तमाम बासर अरब मुस्लिम हुक्मरान वहां मिलकर हमास को क्यों लगाम नहीं डाल सकते चक्की के इन दो पार्टों में यानी हमास और इसराइल बेबस फिलिस्तीनी आवाम गेहूं की तरह पिसे जा रहे हैं हमास ऐसा कौन सा मुंहजोर घोड़ा है जिसे काबू नहीं किया जा सकता अगर 20 इसराइली यर्गमाली जिंदा है और 28 या 38 के करीब मारे गए इसरली यर्गमालियों की लाशें हैं तो हमास उन्हें अपने पास किस खुशी में रखे हुए हैं क्या यह इंसानियत से गुरी हुई गुनानी हरकत नहीं है इतनी इंसानी तबाही करवाने के बावजूद इतने हजारों फिलस्तीनी मरवाने के बावजूद हमास वाले आखिर और क्या चाहते हैं इस खालिस्तान इंसानी इशू को हमारे मीडिया में क्यों हाईलाइट नहीं किया जाता हमारा बुलंद परवाज गजा इशू पर बड़ी-बड़ी छोड़ता था कि ना जाने प्रेसिडेंट ट्रंप को मिलकर क्या कहेगा रवायती खुशामदी ने तो खुशामद की हद कर दी ट्रंप की तारीफों के पुल बांध दिए ट्रंप जी आपसे बड़ा अमन का दाई आलम बरदार तो दुनिया में कोई है ही नहीं आप अमन के दायू प्रचारक हैं दुनिया भर में जंगे खत्म करवा रहे हैं आपने इंडिया से हमारी जंगबंदी करवा कर एहसान अजीम किया है
انسانوں کے نام، اظفر ریحان، اقوام متحدہ اور صدر ٹرمپ کا عالمی کردار، آج مسائل کی ایسی بھرمار ہے کہ میں یہ سمجھنے سے قاصر ہوں کہ کس پر قلم اٹھاؤں اور کس کو نظر انداز کروں۔ درویش کی ہمیشہ خواہش ہوتی ہے کہ صرف وہی مسائل اٹھائے جائیں جہاں کوئی تنقید یا تحریف ہو۔ جہاں ہمارا میڈیا حالات کی تلخ تصویر پیش کر رہا ہے وہیں تصویر کا دوسرا رخ بھی پیش کرنا چاہیے جس کی بنیاد صرف انسانی مفاد پر ہونی چاہیے۔ لیکن اگر ہمارا ذوق صحیح سمت کی طرف جا رہا ہے تو ڈیڑھ مرلہ کی الگ مسجد بنانا یا اہلِ دنیا کے لیے حق گوئی کا نعرہ لگانا نہ صرف اپنی بلکہ عوام کے رتبے کی بھی توہین ہے۔ آج کا مقصد پاک سعودی عرب کے معاملے پر بحث اور تنقیدی جائزہ لینا تھا۔ خاص طور پر اس لیے کہ ہمارا میڈیا اس کی سخت اور جذباتی تصویر پیش کر رہا ہے۔ بہت سے حقیقی سوالات ہیں جن پر کوئی توجہ نہیں دے رہا۔ ان پر کوئی بحث بھی نہیں کر رہا، بلکہ ہمارے عاجز مسلمانوں کو بے وقوف بنانے کے لیے اسلامی نیٹ ورک کے وجود میں آنے کی کہانیاں گھڑ رہے ہیں۔ یہ معلومات ہماری طاقتور اسٹیبلشمنٹ کے سیاسی مفادات کو پورا کرتی ہیں، اس لیے یہ معلومات بکثرت خریدی اور فروخت کی جا رہی ہیں۔ درحقیقت ہم سب کو سعودی عرب سے بے پناہ محبت ہے۔ حضور صلی اللہ علیہ وسلم ہوں یا رسول اللہ صلی اللہ علیہ وسلم بیت المقدس، تینوں سیارے ہوں یا ترسینا، ان کی محبت ان کے خون میں پیوست ہے۔ سعودی عرب کے موجودہ حکمران، ولی عہد شہزادہ محمد بن سلمان، ایک لچکدار شخصیت ہیں جو اپنے ملک کی ترقی کے جذبے کو عزم اور ترقی میں تبدیل کرنے کے لیے انقلابی اقدامات کی قیادت کر رہے ہیں۔ یہ درویش سال کے آغاز سے ہی ان کی حمایت اور وکالت میں نمایاں آواز اٹھا رہا ہے۔ سعودی عرب اور پاکستان کے درمیان طے پانے والے سیکیورٹی ڈیل یا ایشو پر بحث ایک الگ مضمون کا معاملہ ہے۔ یہ متنازعہ ہے، اس لیے اسے اس وقت تک زیر التواء رکھا گیا ہے۔ آج کا موضوع اقوام متحدہ کی جنرل اسمبلی میں ہونے والے رنگا رنگ عالمی مباحثوں کا جائزہ ہونا چاہیے، خاص طور پر منفرد امریکی صدر ڈونلڈ ٹرمپ کا پریشان کن یا حیران کن عنوان، اور یہ بھی کہ آیا واقعی ایک فلسطینی ریاست خطہ کنعان میں بننے والی ہے یا خطہ اسرائیل۔ جس طرح یہ چرچا ہے کہ انگلینڈ، فرانس اور جرمنی جیسے طاقتور یورپی ممالک ہی نہیں بلکہ کینیڈا، آسٹریلیا اور پرتگال جیسے ممالک بھی فلسطینی ریاست کے قیام کے حق میں بیانات دے رہے ہیں، اگر اصولی طور پر دیکھا جائے تو دنیا میں کوئی بھی خطہ کنعان میں علیحدہ فلسطینی ریاست کے قیام کا مخالف نہیں، حتیٰ کہ امریکہ یا اسرائیل بھی نہیں، جب کہ اس مسئلے پر صرف امریکہ، اسرائیل سے ہی نہیں بلکہ بہت سے ممالک کو جوڑ دیا گیا ہے۔ پی ایل او یاسر عرفاز اور ابو مازن محمود عباس کی قیادت میں فلسطینی اتھارٹی کا قیام درحقیقت ایک علیحدہ فلسطینی ریاست کی جانب ٹھوس عملی پیش رفت کی شرط تھی۔ مزے کی بات یہ تھی کہ آپ لوگ اسرائیل کو تسلیم کرتے ہوئے اس کی سلامتی پر حملہ نہیں کرتے۔ یہی مضحکہ خیز عمل تھا جس نے 2005 میں اسرائیلی وزیر اعظم شیرون کو مجبور کیا۔جب امریکہ نے اپنا 40سالہ قبضہ ختم کرکے غزہ کو فلسطینی اتھارٹی کے حوالے کیا تو لاکھوں یہودی اپنی مضبوط قلعہ نما رہائش گاہیں روتے ہوئے چھوڑ کر امریکی دباؤ پر چلے گئے۔ یہ بھی واضح رہے کہ 1967 کے بعد سے یہ خطہ کبھی بھی کسی فلسطینی اتھارٹی کے ماتحت نہیں تھا بلکہ عرب جمہوریہ مصر کے دارالحکومت کا حصہ تھا۔ ہمارے میڈیا میں اس طرح پروپیگنڈہ کیا جا رہا ہے کہ گویا یہود و نصاریٰ نے ہم مسلمانوں کے خلاف کوئی نفرت انگیز اتحاد بنا لیا ہے۔ القف ملت واحدہ جیسے نعرے لگا کر اس اتحاد کا یہ کہہ کر شدید استحصال کیا جاتا ہے کہ یہ سب مل کر غریب فلسطینی مسلمانوں کا قتل عام کر رہے ہیں اور انہیں علیحدہ فلسطینی ریاست نہیں بنانے دے رہے ہیں۔ یہ ہمارے معصوم اور سادہ لوح لوگ ہیں واضح رہے کہ اصل میں ایک علیحدہ فلسطینی ریاست 1948 میں اسی وقت قائم ہوئی تھی جب اسرائیل کی ریاست قائم ہوئی تھی اور یہ انہی ترکمنوں نے کی تھی جنہوں نے مذہب کے نام پر اسرائیل اور پاکستان کو بنایا تھا لیکن وہ کون سی حرکتیں تھیں جن کی وجہ سے خود عربوں نے اسے ماننے سے انکار کر دیا اور اچانک ایک بار پھر امریکہ کے ساتھ مل کر اسرائیل کے خلاف ہو گئے۔ علیحدہ فلسطینی ریاست اور پھر وہ کون سے عوامل تھے جنہوں نے اسے دوبارہ ثابت کیا؟ اگر ہم اس کی تفصیلات میں جائیں تو اقوام متحدہ میں ہونے والی دلچسپ تقریر کا مقابلہ نہیں کر پائیں گے، خاص طور پر صدر ٹرمپ کا وہ مزاحیہ بیان جو اقوام متحدہ میں کھڑے ہو کر نہ صرف اپنے مخالفین کو بلکہ پوری دنیا کو دھمکیاں دے رہا تھا اور سب سے بری بات یہ ہے کہ ان کا اپنا ٹیلی پیٹر ٹوٹ گیا یا کہانی جو بھی تھی، اقوام متحدہ کی جنرل اسمبلی سے خطاب کے دوران دیگر عالمی رہنماؤں کی مائیکرو فون پر تقریریں ٹوٹ گئیں۔ امریکہ کو کیوں بند کیا جا رہا تھا؟ دنیا میں آزادی اظہار کی سب سے بڑی پروموٹر دنیا ہے۔ پھر مخالف آوازوں کے ساتھ ایسا سلوک کرکے آپ دنیا اور ان پر حملہ آور کتے نما اسٹیبلشمنٹ کو کیا پیغام دے رہے ہیں؟ کیا ہمارا صدر اتنی گھٹیا پن کا مظاہرہ کر سکتا ہے کہ وہ اقوام متحدہ کی جنرل اسمبلی میں کھڑے ہو کر لندن کے منتخب میئر پر حملہ کر کے اپنے دل کی بات کہہ دے کہ سر خان لندن جیسے خوبصورت، ثقافتی شہر کو برباد کر رہے ہیں۔ وہ لندن میں شریعت کا نفاذ چاہتا ہے۔ اس نے اسے تارکین وطن کے کنٹرول میں دے دیا ہے اور میں دوبارہ وہاں نہیں جاؤں گا۔ لیکن اس سے قبل انہوں نے نیویارک میں صدارتی انتخابات کے لیے ایشیائی امیدوار کے حوالے سے بھی ایسے ہی الفاظ استعمال کرنا شروع کر دیے تھے۔ یہاں اقوام متحدہ میں ٹرمپ کہہ رہے تھے کہ یورپی ممالک یونان، جرمنی، سوئٹزرلینڈ اور دیگر یورپی ممالک میں غیر قانونی امیگریشن کے لیے سرحدیں کھول کر اپنے ملکوں کو جہنم بنا رہے ہیں۔
The source provides an overview and analysis of a twenty-point Gaza peace roadmap proposed by American President Donald Trump, created in consultation with eight Islamic nations, including both Arab and non-Arab states. The plan aims to end the ongoing conflict, focusing on de-escalation, reconstruction, and the demilitarization of Gaza, with an explicit goal of targeting and neutralizing Hamas while offering its members amnesty if they agree to disarmament and peaceful coexistence. Key features of the proposal include the exchange of prisoners and hostages, a phased Israeli withdrawal replaced by international forces, and the possibility of a future Palestinian autonomous state, though Israeli leadership has publicly stated they do not interpret the plan as accepting a two-state solution. The analysis also questions the plan’s feasibility, particularly given the deep-seated mutual distrust and the potential for domestic opposition within both the Palestinian and Israeli populations, suggesting that a lack of addressing fundamental religious animosities could ultimately cause the roadmap to fail.
The Trump Gaza Ceasefire Roadmap and Provisions
The Trump Gaza Roadmap (also referred to as the Gaza Ceasefire Road Map or Gaza Peace Plan) is a 20-point proposal presented by US President Donald Trump under significant international pressure, following a period in which 64,000 people were reported killed. The stated primary goal of the roadmap is the cessation of the bloody war that has been ongoing for two years and has resulted in the destruction of Gaza, turning cities and towns into ruins.
Development and Support
The roadmap was developed in consultation with eight Islamic and Arab countries. Trump’s team, which included his son-in-law Jared Kushner, worked with these countries to devise 21 points, which were consolidated into the 20-point plan intended to be enforced upon Israel.
The eight consulted nations included three non-Arab states (Turkey, Indonesia, and Pakistan) and five Arab states (Saudi Arabia, Egypt, Jordan, Qatar, and the United Arab Emirates). The Foreign Ministers of these eight nations issued a joint declaration strongly supporting the plan, deeming it indispensable or key for peace and security in the region, while also leaving room for further negotiations.
Key Provisions of the Roadmap
The roadmap establishes several crucial steps aimed at stabilizing the region and restructuring Gaza:
Security and Demilitarization: The foremost point (Point 1) is to make Gaza a territory free of terrorism and extremism, ensuring it poses no threat to its neighbors, Israel and Egypt.
Hamas or any other militant group will have no direct or indirect role in the governance of Gaza (Point 13).
All terrorist centers and infrastructure, including tunnels and weapons manufacturing facilities, must be destroyed.
Gaza will be demilitarized under the supervision of neutral observers.
No Israeli Occupation or Annexation (Point 16): The plan explicitly clarifies that Israel will neither occupy Gaza nor annex any part of it.
Transition of Power: As Israeli Security Forces gradually withdraw, International Defense Forces will incrementally assume control to establish stability in Gaza. If Hamas rejects the roadmap, these International Defense and Stability Forces will still continue peaceful aid operations in the regions handed over to them.
Reconstruction: Gaza’s reconstruction will be carried out to benefit its population.
Focus on Hamas and Reconciliation
The sources suggest that the primary target of the Gaza peace plan is Hamas.
Amnesty for Fighters (Point 6): Following the release of hostages and a prisoner exchange, Hamas members who agree to peaceful coexistence and surrender their weapons will be granted general amnesty. They will be given safe passage and the necessary facilities to travel to countries that accept them if they wish to leave Gaza.
Prisoner and Hostage Exchange (Point 5): In exchange for 20 living Israeli hostages and 24 bodies, Israel will release 250 prisoners who have received life sentences from Israeli courts for proven crimes, along with 1,700 other Palestinians arrested after October 7 (including women and children). Furthermore, 15 bodies of Palestinians will be returned for every one body of an Israeli hostage.
Inter-Religious Dialogue (Point 18): Point 18 is highlighted as the most beneficial aspect of the roadmap. It stipulates the initiation of an inter-religious dialogue to transform the mindset of Israelis and Palestinians, eliminate mutual hatred, and highlight the benefits of peace. The sources contend that this religious hatred is the root of the conflict, and without addressing it, other schemes will fail.
Concerns and Challenges
Several challenges and questions regarding the plan’s viability are raised in the sources:
Hamas Rejection: It is anticipated that Hamas may reject the plan, believing it signals the death of its political power. However, Hamas is reportedly in a position of weakness, lacking external support, except for limited assistance from Iran, Turkey, and Qatar.
Israeli Commitment and the Two-State Solution: Israeli Prime Minister Benjamin Netanyahu assured his citizens that accepting the Gaza peace plan in no way means accepting a two-state solution in the region. This confirms public pressure within Israel against the two-state solution.
Future Palestinian State (Point 19): Point 19 states that, in deference to the eight Islamic/Arab nations, possibilities for establishing a Palestinian autonomous state will emerge once Gaza is reconstructed and the Palestinian Authority completes necessary reforms. The US would then initiate negotiations between Israelis and Palestinians to establish a political horizon for peaceful coexistence. However, the sources note that due to the events of October 7, 2023, the trust between the two factions has been destroyed, and neither the two-nation theory nor the two-state solution seems currently possible.
Motives and Guarantees: Questions are raised about the actual intent behind the plan, suggesting it might be an extension of the Abraham Accords aimed at compelling Muslim Arab states to recognize Israel. There is also concern that Israel, after achieving its objectives (such as the release of hostages), might violate its commitments and launch attacks on other neighboring Arab or Muslim countries once American pressure subsides.
Contextual Pressure: The introduction of the plan occurred shortly after the Israeli Prime Minister, under pressure from the US President, apologized to the Qatari Prime Minister for an “illegal attack” on Qatari territory that resulted in the death of a security guard, promising compensation and pledging never to attack Qatar again.
Trump’s Gaza Ceasefire Roadmap and Core Provisions
with these countries to devise the points which were consolidated into the final plan intended to be enforced upon Israel.
The Foreign Ministers of these eight nations issued a joint declaration strongly supporting the Gaza Ceasefire Road Map, deeming it indispensable or key for peace and security in the region, while also leaving room for further negotiations.
Core Provisions of the Ceasefire Plan
The plan establishes strict criteria for the governance and demilitarization of the territory:
Security and Demilitarization (Point 1): The foremost point states that Gaza must be made a territory free of terrorism and extremism that poses no threat to its neighbors, Israel and Egypt.
Hamas Exclusion (Point 13): Hamas or any other militant group will have no direct or indirect role in the governance of Gaza. All terrorist centers, infrastructure (including tunnels), and weapons manufacturing facilities must be destroyed. Gaza will be demilitarized under the supervision of neutral observers.
No Israeli Occupation or Annexation (Point 16): The roadmap explicitly ensures that Israel will neither occupy Gaza nor annex any part of it.
Transition of Control: As Israeli Security Forces withdraw incrementally, International Defense Forces will gradually take control to establish stability in Gaza. Even if Hamas rejects the plan, these International Defense and Stability Forces will continue peaceful aid operations in the regions handed over to them.
Reconstruction: The reconstruction of Gaza is mandated to benefit its population.
Focus on Hamas and Reconciliation
The sources contend that the primary target of the Gaza peace plan is Hamas.
Prisoner and Hostage Exchange (Point 5): The plan outlines a comprehensive exchange deal:
Israel will receive 20 living Israeli hostages and 24 bodies.
In return, Israel will release 250 prisoners serving life sentences for proven crimes, alongside 1,700 other Palestinians arrested after October 7 (including women and children).
Additionally, Israel will return 15 bodies of Palestinians for every one body of an Israeli hostage.
Amnesty for Fighters (Point 6): Hamas members who agree to peaceful coexistence and surrender their weapons will be granted general amnesty and life security. Those wishing to leave Gaza will receive safe passage and facilities to travel to countries that accept them.
Inter-Religious Dialogue (Point 18): Point 18 is highlighted as the most beneficial provision, calling for an inter-religious dialogue to change the mindset of Israelis and Palestinians. The goal is to eliminate mutual hatred and emphasize the benefits of peace. The sources argue that religious hatred is the root of the conflict, and without addressing this, all other schemes will fail.
Challenges and Concerns
Several significant concerns surround the viability and intent of the plan:
Hamas Rejection: Hamas is expected to reject the plan, as it views the proposal as the death of its political power. The sources note, however, that Hamas is currently in a weak position, lacking significant external support except for limited assistance from Iran, Turkey, and Qatar.
Israeli Commitment to Peace: Israeli Prime Minister Benjamin Netanyahu assured his citizens that accepting the Gaza peace plan in no way means accepting a two-state solution in the region. This reflects the public pressure within Israel against the two-state solution.
Future of Trust and Statehood: The events of October 7, 2023, are seen as having destroyed the trust between the two factions, suggesting that neither the two-nation theory nor the two-state solution seems possible at present.
Political Horizon (Point 19): Point 19 states that possibilities for establishing a Palestinian autonomous state will emerge once Gaza is reconstructed and the Palestinian Authority completes necessary reforms. The US would then initiate negotiations between Israelis and Palestinians to establish a political horizon for peaceful coexistence.
Guarantees and Motives: Questions have been raised regarding whether the plan is an extension of the Abraham Accords, aiming to compel Muslim Arab states to recognize Israel. There is also concern about the guarantee that Israel will adhere to its commitments and not violate the agreement or attack neighboring countries once American pressure subsides, especially after achieving objectives like the release of its hostages.
The Gaza Roadmap and the Demise of Hamas
The Trump Gaza Roadmap, or Gaza Ceasefire Plan, establishes a very specific and limited future role for Hamas, primarily focused on the cessation of its political and military activities. The sources contend that Hamas is the “actual target” of the entire peace plan.
Exclusion from Governance and Demilitarization
The roadmap dictates a complete removal of Hamas from any position of authority in Gaza:
No Role in Governance: Point 13 stipulates that Hamas or any other militant group will have no direct or indirect role in the governance of Gaza.
Demilitarization: Gaza must be transformed into a territory free of terrorism and extremism. This requires that all terrorist centers, infrastructure, including tunnels and weapons manufacturing facilities, be destroyed. Gaza will be demilitarized under the supervision of neutral observers.
Anticipated Reaction and Current Weakness
Hamas is expected to view this roadmap as an existential threat to its power:
Political Demise: It is suspected that Hamas will reject the plan because it perceives the proposal as the death of its political power (“सियासत या ताकत की मौत”).
Weakened Position: The sources note that Hamas is currently in a state of helplessness, as it has no substantial external support (“बैरूनी सपोर्ट हासिल नहीं रही”). While it receives limited financial aid (“महदूद माली इमदाद”) from Iran, Turkey, and Qatar, it is not in a position to leverage significant help.
Unsustainable Resistance: It is believed that Hamas will not be able to sustain its resistance movement for much longer. The sources suggest this is a crucial opportunity for the group not to waste the offered amnesty.
Amnesty and Peaceful Exit Option
For individual Hamas members, the roadmap offers a specific path toward amnesty:
General Amnesty (Point 6): Hamas members who agree to peaceful coexistence and surrender their weapons will be granted general amnesty and life security. This amnesty is granted following the completion of the hostage release and prisoner exchange process.
Safe Passage: Those who wish to leave Gaza will be provided safe passage and the necessary facilities to travel to countries willing to accept them.
Plan Enforcement Regardless of Rejection
Even if Hamas rejects the Gaza Ceasefire Plan or attempts to use delaying tactics, the sources indicate that the international transition will still proceed:
If Hamas rejects the roadmap, the International Defense and Stability Forces will still continue peaceful aid operations in the regions that have been handed over to them. These forces are scheduled to take control incrementally as Israeli Security Forces withdraw.
Trump Gaza Roadmap Security Analysis
The Trump Gaza Roadmap addresses Israel’s security concerns primarily through the demilitarization of Gaza, the destruction of terrorist infrastructure, and the permanent exclusion of Hamas from governance. However, the plan also introduces long-term security questions regarding regional stability and Israel’s commitment to future agreements.
Core Security Objectives for Israel
The foremost security objective stipulated in the roadmap is ensuring Gaza poses no threat to Israel:
Demilitarization of Gaza: Point 1 states that Gaza must be made a territory free of terrorism and extremism that poses no threat to its neighbors, Israel and Egypt.
Destruction of Infrastructure: Security measures include the mandate that all terrorist centers and infrastructure, including tunnels and weapons manufacturing facilities, must be destroyed. Gaza will be demilitarized under the supervision of neutral observers, rendering its weapons unusable (“सलाह को नकारा बनाते हुए”).
Exclusion of Militant Groups: Point 13 ensures that Hamas or any other militant group will have no direct or indirect role in the governance of Gaza.
Immediate Security Gain: Hostage and Prisoner Exchange
The ceasefire plan provides for an immediate security and humanitarian gain for Israel by securing the return of its captured citizens and bodies:
Hostage Release (Point 5): Israel is set to receive 20 living Israeli hostages and 24 bodies.
Prisoner Exchange: In exchange, Israel will release 250 prisoners serving life sentences and 1,700 other Palestinians arrested after October 7. For every one body of an Israeli hostage, 15 bodies of Palestinians will be returned.
Concerns Regarding Long-Term Security and Commitments
Despite the immediate security concessions outlined in the plan, the sources highlight major long-term concerns regarding Israel’s future actions and regional stability:
Guarantee of Non-Aggression: A significant concern is the lack of guarantee that Israel will adhere to its commitments once American pressure subsides and it achieves its objectives (like the release of hostages). The question is raised: “What is the guarantee that Israel, after having its demands met… will not violate other matters, ignoring the Palestinians?”.
Attacks on Neighbors: There is specific concern about whether Israel will “attack any other neighboring Arab or Muslim country” in the future if American pressure is lifted. This concern is raised despite the Israeli Prime Minister, under pressure from the US President, having already apologized to the Qatari Prime Minister for an “illegal attack” on Qatari territory, promising compensation, and pledging never to attack Qatar again.
Rejection of Two-State Solution: Israeli Prime Minister Benjamin Netanyahu found it necessary to assure his citizens that accepting the Gaza peace plan “in no way means accepting a two-state solution” in the region. This reflects the powerful public pressure within Israel against the two-state solution and indicates a lack of political horizon for long-term peace sought by the Arab nations involved in the roadmap’s creation.
Destruction of Trust: Following the events of October 7, 2023, the trust between the Israeli and Palestinian factions has been “destroyed”. This loss of trust means that neither the two-nation theory nor the two-state solution seems possible at present, undermining the potential for a secure, negotiated future.
No Occupation or Annexation
While addressing security, the plan explicitly restricts Israel’s territorial actions, which may alleviate regional tension but could be viewed by hardliners as a security constraint:
No Annexation (Point 16): The roadmap clarifies that Israel will neither occupy Gaza nor annex any part of it.
Phased Withdrawal: Israeli Security Forces will incrementally withdraw from Gaza, with International Defense Forces taking control in phases to establish stability.
Importance of Dialogue for Enduring Security
Point 18 of the roadmap is identified as potentially the most effective measure for long-term security because it addresses the root cause of the conflict:
Inter-Religious Dialogue: This point calls for initiating an inter-religious dialogue to “change the mental state” (“ज़हनी काया पलट”) of Israelis and Palestinians,eliminate mutual hatred, and highlight the benefits of peace. The sources emphasize that religious hatred is the “root of all bloodletting and unrest,” and without addressing this fundamental issue, all other schemes will fail.
Trump Gaza Roadmap: Inter-Religious Dialogue and Peace
The inter-religious dialogue is outlined as a specific provision within the Trump Gaza Roadmap (Gaza Ceasefire Plan). It is featured as Point 18 of the 20-point proposal.
Purpose and Importance
The sources highlight the inter-religious dialogue as potentially the “most beneficial” or “most beautiful” aspect of the entire roadmap.
The dialogue is intended to address the root cause of the conflict:
Eliminating Hatred: The primary purpose of the inter-religious dialogue is to initiate a process that will “change the mental state” (“ज़हनी काया पलट”) of Israelis and Palestinians. The goal is toeliminate mutual hatred and highlight the benefits of peace.
Addressing the Root Cause: The sources stress that religious hatred is the “root of all bloodletting and unrest” (“तमामतर खून रेजी फसाद की जड़ यही मजहबी मुनाफरत है”)Necessity for Success: The source material explicitly states that unless this religious aspect is addressed through true improvement and cleansing (“शरी बेहतरी और सफाई”), all other schemes and plans will fail (“आप लाख स्कीमें बना लें सब फेल हो जाएंगी”).
Implementation
The plan stipulates that an inter-religious dialogue process will be started to:
Transform the mindset of Israelis and Palestinians.
Intellectually and mentally expose the benefits of peace (“ज़हनी फिक्री तौर पर अमन के फ़वायद उजागर किए जा सके”).
इंसानों के नाम अफजार रिहान खजा जंगबंदी मंसूबा कामयाब या नाकाम 64,000 इंसानों को मरवाने के बाद बिल आखिर आलमी दबाव पर अमेरिकी प्रेसिडेंट डोनाल्ड ट्रंप ने आठ इस्लामिक अरब मुालिक की मुशावरत से अपना 20 नकाती गजा अमन रोड मैप पेश कर दिया है इन आठ मुालिक में तीन गैर अरब टर्किया इंडोनेशिया और पाकिस्तान है जबकि सऊदी अरब इजिप्ट जॉर्डन कतर और यूनाइटेड अरब अमरात समेत पांच अरब मुालिक शामिल हैं जिन्होंने प्रेसिडेंट ट्रंप की टीम जिसमें इनके दामाद जर्ड कुशनर भी शामिल है के साथ मिलकर गजा रोड मैप के 21 पॉइंट तैयार किए जिन्हें इसराइल से मनवाने के लिए 20 नकाती मंसूबा बना दिया गया है या करार दिया गया है इन आठ मुालिक के फॉरेन मिनिस्टरर्स ने अपने मुश्तका इलामिया या जॉइंट डिक्लेरेशन में ट्रंप के गजा असीज फायर रोड मैप की भरपूर हिमायत करते हुए उसे ख्ते में अमनो सलामती के लिए नागजीर या कली करार दिया है जिसे आगे बढ़ाने के लिए मजीद बातचीत की गुंजाइश भी रखी है ट्रंप का यह गजा अमन रोड मैप है क्या इसके 20 पॉइंट्स का जायजा लेने के साथ इस अम्र पर बहस जरूरी है कि यह किस कदर काबिले अमल है और क्या इसके नतीजे में गज़ा की खून रेज़ी वाकई बंद हो जाएगी इससे फ़स्तीनी आवाम को क्या मिलेगा क्या यह मंसूबा दो रियासती हाल में मुआवनत करेगा क्या बशूल हमास आम अरब और मुस्लिम आवाम इसकी मुखालफत में कहीं अपनी ही रियासतों या हुकूमतों के खिलाफ खड़े तो नहीं हो जाएंगे क्या यह इब्राहिम अकाट की ही तौसी शक्ल नहीं है जो मुस्लिम अरब रियासतों के लिए इसराइल को तस्लीम करवाने की तरफ ले जाएगी क्या यह लफाजी हमाश जैसी मज़ामती तहरीक को कुचलने और इसराइली ख्वाहिशात को तहफुज़ देने के लिए तो नहीं है सवाल यह है कि खुद पसंदसंद और मुंहज़र इसराइल 64,000 बेगुनाहों को मारते हुए अपने टारगेट सनूस अचीव नहीं कर सका क्या अब वो मुस्लिम फर्सेस को मुस्लिम तहरीक मुज़ामत से लड़वा कर हासिल करना चाहता है जिस तरह लोहे को लोहा काटता है क्या इसी तरह अब मुस्लिम को मुस्लिम काटेगा इस अम्र की क्या गारंटी है कि इसराइल अपने तमाम यमाली छुड़वाने या अपना उल्लू सीधा करवाने के बाद फिलस्तीनियों को ठेंगा दिखाते हुए दीगर मामलात से मुनहरफ़ नहीं हो जाएगा आज इसराइली प्राइम मिनिस्टर ने अमेरिकी प्रेसिडेंट के दबाव पर वाशिंगटन से दोहा काल मिलाते हुए कतरी प्राइम मिनिस्टर से अपने नाजायज हमले की माफी मांगी है कतरी सर जमीन की खिलाफवर्जी और एक सिक्योरिटी गार्ड की हलाकत पर ज़हरे अफसोस करते हुए मरने वाले के खानदान को मुआवजा देने और क़तर पर दोबारा हमला ना करने का अहद किया है लेकिन इस अम्र की क्या गारंटी है कि जब अमकी प्रेशर हटेगा इसराइल अपने इस अहद की पासदारी करते हुए आइंदा किसी दूसरे अरब हमसाए या मुस्लिम मुल्क पर हमलावर नहीं होगा जैसे कि प्रेसिडेंट ट्रंप के साथ मुश्तका प्रेस कॉन्फ्रेंस करते हुए बंचम नितिन याू ने एकदम अंग्रेजी रोक करानी जुबान में अपने हम वतनों को यह यकीनदानी करवाना जरूरी समझा कि इस गजा अमन मंसूबे को कबूल करने का यह मतलब कती नहीं है कि हम ख्ते में दो रियासी हल को कबूल करने जा रहे हैं इसराइल के अंदर आवामी सतह पर मौजूद इस दबाव का दरा किया जा सकता है जो टू स्टेट्स हल की बात भी नहीं सुनना चाहता और यह दरवेश 7 अक्टूबर 2023 से वहम वाज़ करता चला आ रहा है कि इस बदतरीन साने का अफसोसनाक पहलू यह भी है कि अब दोबारा कभी कैंप डेविड या उसका कार्ड जैसा कोई मुयदा इसराइलियों और फिलिस्तीनियों के दरमियान ना हो पाएगा क्योंकि 7 अक्टूबर के रोज मोज़ 1200 बेगुनाह इसराइलियों का ही खून नहीं हुआ बल्कि हर दो फिरकों के बीच रहे स एतमाद का खून भी इसी दिन हो गया नतीजातन अब यहां टू नेशन थ्योरी चलेगी ना टू स्टेट्स हल मुमकिन हो पाएगा अगरचे ट्रंप अमन रोड मैप में आठ इस्लामिक अरब मुालिक की ख्वाहिश के एतराम में 19वां पॉइंट यह वाज़ करता है कि जब गजा की तामीर नौ में पेशरफ्त होगी और फिलस्तीनी अथॉरिटी इस हवाले से इस्लाहात मुकम्मल कर लेगी तब फिलस्तीनी खुद मुख्तार रियासत को कायम करने के इमकानात पैदा हो सकेंगे अमेरिका इसराइल और फिलिस्तीनियों के दरमियान मजाकात शुरू करवाएगा ताकि पुरन बकाए बामी के लिए एक सियासी उफ तय किया जा सके यह अमर बहाल सूरत वाज़ रहना चाहिए कि गजा अमन रोड मैप का बुनियादी मकसद दो बरसों से जारी इस खून रे जंग का खात्मा है जो इतने बेगुनाहों की जाने ले चुकी है जिससे गजा का तोड़ा बुरा बनाया जा चुका है हंसते बंसते शहर और कस्बे खंडरात के ढेर दिखते हैं तबा हाल इंफ्रास्ट्रक्चर में खाम बस्तियों की बातें हो रही थी बल्कि इस नो की तजावीज ज़रे बहस थी कि अगर हमास वाले अपनी बका के लिए अपने आवाम और यमालियों को बतौर ढाल इस्तेमाल कर रहे हैं तो क्यों ना इन आवाम ही को मुख्तलिफ गिरोहों और टुकड़ियों में बांट ते हुए दीगर मुख्तलिफ मुालिक और खतों में बसाने का एतमाम कर दिया जाए नतीजातन इसराइल गजा ही नहीं वेस्ट बैंक का इलाहाक भी अपनी रियासत के साथ कर ले अब कम से कम ट्रंप के इस अमन मंसूबे में यह सराहत वाज़ तौर पर कर दी गई है कि बाबाला पॉइंट नंबर 16 इसराइल ना तो गजा पर कब्जा करेगा और ना ही इसके किसी हिस्से को अपने में जम करेगा इसराइली सिक्योरिटी फर्सेस जैसे ही मरहलावार गजा से इंखला करेंगी इंटरनेशनल डिफेंस फर्सेस मरहला बार इसका कंट्रोल लेते हुए यहां इस्तहकाम कायम करेंगी अगर मास इस अमन रोड मैप को मुस्तरद कर देगी या ताख़री हरबे इख्तियार करेगी तब भी इंटरनेशनल डिफेंस और स्टेबिलिटी फोर्सेस इन खतों में पुर अमन इमदादी कारवाया जारी रखेंगी जो इनके हवाले कर दिए गए होंगे ट्रंप के गजा अमन मंसूबेब का अवली नुक्ता यह है कि गजा को दहशतगर्दी और इंतहाबसंधी से पाक खता बनाया जाएगा जो अपने हमसाइयों इसराइल और इजिप्ट के लिए खतरा ना हो गजा की तामीर नौ की जाएगी ताकि वहां बसने वाले आवाम इससे मुस्तफीद हो सके दरवेश यहां यह अमर वाज़ करना चाहता है कि इस गजा अमन मंसूबे का असल नुकसान ना तो किसी आम फिलिस्तीनी को है और ना इसराइलियों को ना ही किसी आम अरब या गैर अरब को है इसका असल टारगेट सिर्फ और सिर्फ हमास है जिसके टेररिस्टों को अगरचे आम माफी और लाइफ सिक्योरिटी की जमानत दी गई है शक नंबर छह के मुताबिक यमालियों की रिहाई और कैदियों के तबादले की कारवाई होने के बाद हमास के वो अरकान जो पुर अमन बकाए बामी पर राजी हो और हथियार डाल दें उन्हें आम माफी दी जाएगी जो गजा में रहना चाहेंगे और जो छोड़ना चाहेंगे उन्हें महफूज़ रास्ता दिया जाएगा और कबूल करने वाले मुालिक जाने की सहूलत दी जाएगी इसके बावजूद दरवेश का गुमान है कि हमाश क्योंकि इस मंसूबे को अपनी सियासत या ताकत की मौत समझ रही है इसलिए वो उसे मुस्तरद कर सकती है या कर देगी हालांकि यह इसकी बेबसी भी है कि अब उसे कमाू कोई बैरूनी सपोर्ट हासिल नहीं रही सिवाय ईरान के जिसकी रसाई पहले ही कमतर हो चुकी है नीव टर्किया या क़तर भी अब सिवाय महदूद माली इमदाद के कोई ज्यादा ताव करने की पोजीशन में नहीं रहे हां अलबत्ता आवामी सतह पर अरब और गैर अरब मुस्लिम आवाम में मौजूद शिद्दत पसंद गिरोह या तंजीमे एक हद तक अब भी हमास को सपोर्ट कर सकती है या कर रही है इसके बावजूद हमास अपनी बका के लिए ज्यादा देर अपनी मजामती तहरीक जारी नहीं रख पाएगी और खुद इसके लिए यह नादर मौका है कि जो माफी तलाफी मिल रही है इस मौका को जाया ना होने दे जैसे कि श नंबर पांच में वाज़ किया गया है कि अपने 20 जिंदा यर्कमालियों और 24 लाशों को वसूल करने के बाद इसराइल हमास या गजा के 250 ऐसे कैदियों को रिहा कर देगा जिन्हें इनके जरा साबित होने पर इसराइली अदालतों से उम्र कैद की सजाएं सुनाई जा चुकी हैं और 7 अक्टूबर के बाद गिरफ्तार किए गए दीगर 1700 फिलिस्तीनियों को भी रिहा कर दिया जाएगा जिनमें खवातीन और बच्चे भी शामिल होंगे एक इसराइली यमाली की लाश के बदले 15 फिलस्तीनियों की लाशें वापस की जाएंगी शक नंबर 13 के मुताबिक हमास या किसी दूसरे मुशद्द ग्रोह का गजा की हुक्मरानी में बराएरा या बिल वास्ता कोई किरदार नहीं होगा दहशतगर्दी के तमाम अड्डे ढांचे बशूल सुरंगे और हथियार बनाने की फैक्ट्रियां तबाह कर दी जाएंगी गैर जानबदार मुबरीन की निगरानी में असला को नकारा बनाते हुए गजा को गैर मुसल्ला किया जाएगा दरवेश की नजर में इस रोड मैप की सबसे खूबसूरत शिक 18 है जिसके मुताबिक एक इंटर रिलजन डायलॉग का अमल शुरू किया जाएगा ताकि इसराइलियों और फस्तीनियों की ज़हनी काया पलट करते हुए बामी मुनाफरतों को खत्म किया जाए और ज़हनी फिक्री तौर पर अमन के फ़वायद उजागर किए जा सके तमामतर खून रेजी फसाद की जड़ यही मजहबी मुनाफरत है जब तक इस हवाले से शरी बेहतरी और सफाई नहीं होती आप लाख स्कीमें बना लें सब फेल हो जाएंगी
انسانوں کے نام، اظفر ریحان خازا، جنگ بندی کا منصوبہ، کامیابی یا ناکامی؟ 64 ہزار افراد کو قتل کرنے کے بعد بالآخر عالمی دباؤ میں آکر امریکی صدر ڈونلڈ ٹرمپ نے آٹھ اسلامی عرب ممالک کی مشاورت سے اپنا 20 نکاتی غزہ پیس روڈ میپ پیش کیا۔ ان آٹھ ممالک میں تین غیر عرب ممالک ترکی، انڈونیشیا اور پاکستان شامل ہیں جب کہ پانچ عرب ممالک جن میں سعودی عرب، مصر، اردن، قطر اور متحدہ عرب امارات شامل ہیں، صدر ٹرمپ کی ٹیم کے ساتھ ان کے داماد جیرڈ کشنر کے ساتھ تعاون کیا تاکہ غزہ روڈ میپ کے 21 نکات مرتب کیے جائیں، جن کو اسرائیل نے اپنانے کے لیے متفقہ طور پر اپنایا یا 20 نکات کا منصوبہ بنایا۔ ان آٹھ ممالک کے وزرائے خارجہ نے اپنے مشترکہ اعلامیے میں ٹرمپ کے غزہ پیس روڈ میپ کی بھرپور حمایت کرتے ہوئے اسے خطے میں امن و سلامتی کے لیے سنگ میل قرار دیا ہے اور اسے آگے لے جانے کے لیے مزید مذاکرات کی گنجائش بھی رکھی ہے۔ ٹرمپ کا یہ غزہ پیس روڈ میپ اپنے 20 نکات کا جائزہ لینے کے ساتھ ساتھ اس معاملے پر بحث بھی ضروری ہے کہ یہ کتنا ممکن ہے اور کیا اس سے غزہ میں خونریزی کا صحیح معنوں میں خاتمہ ہو گا۔ اس سے فلسطینی عوام کو کیا فائدہ ہوگا؟ کیا یہ منصوبہ دو ریاستی صورت حال میں مفاہمت کا باعث بنے گا؟ کیا حماس عام عرب اور مسلم عوام کے ساتھ مل کر اپنی ہی ریاستوں یا حکومتوں کے خلاف مخالفت میں اٹھے گی؟ کیا یہ ابراہیم عقات کی اعتکاف نہیں ہے، جو مسلم عرب ریاستوں کو اسرائیل کو قبول کرنے پر لے جائے گا؟ کیا اس بیان بازی کا مقصد حماس جیسی بنیاد پرست تحریک کو کچلنا اور اسرائیلی عزائم کو تحفظ دینا نہیں؟ سوال یہ ہے کہ اسرائیل، جو خود ایک وفادار اور بے رحم اسرائیل ہے، 64000 بے گناہ لوگوں کو مار کر اپنا ہدف کیوں حاصل نہیں کر سکا؟ کیا اب وہ مسلمانوں کی تحریک مزاحمت کو لوہے کے خلاف کھڑا کر کے مسلمانوں کی سرزمین حاصل کرنا چاہتا ہے جس طرح لوہا لوہے کو کاٹتا ہے؟ کیا اب مسلمان اس طرح مسلمانوں کو ماریں گے؟ اس بات کی کیا گارنٹی ہے کہ اسرائیل اپنے تمام یامالوں کو رہا کرنے یا اپنا کام مکمل کرنے کے بعد فلسطینیوں کی طرف آنکھیں بند کرکے دوسرے معاملات کو نظرانداز نہیں کرے گا؟ آج امریکی صدر کے دباؤ پر اسرائیلی وزیر اعظم نے واشنگٹن سے دوحہ فون کر کے غیر قانونی حملے پر قطری وزیر اعظم سے معافی مانگ لی۔ انہوں نے قطری سرزمین کی بے حرمتی اور سیکیورٹی گارڈ کے قتل پر گہرے افسوس کا اظہار کرتے ہوئے مقتول کے اہل خانہ کو معاوضہ دینے اور قطر پر دوبارہ حملہ نہ کرنے کا وعدہ کیا۔ لیکن اس بات کی کیا گارنٹی ہے کہ جب امریکی دباؤ ہٹ جائے گا تو اسرائیل اس وعدے کی پاسداری کرتے ہوئے مستقبل میں کسی دوسرے عرب پڑوسی یا مسلم ملک پر حملہ نہیں کرے گا۔ جس طرح صدر ٹرمپ کے ساتھ مشترکہ پریس کانفرنس کے دوران بنچم نتن یادیو نے انتہائی روکھے انگریزی میں بات کرتے ہوئے اپنے ہم وطنوں کو یہ یقین دلانا ضروری سمجھا کہ غزہ کے اس امن منصوبے کو قبول کرنے کا مطلب یہ نہیں ہے کہ ہم دو ریاستی حل کو قبول کرنے والے ہیں۔ اسرائیل کے اندر عوامی سطح پر موجود دباؤ کو کوئی سمجھ سکتا ہے جو دو ریاستی حل کے بارے میں سننا بھی نہیں چاہتا اور یہ درویش 7 اکتوبر 2023 سے اپنے آپ کو دھوکہ دے رہا ہے۔ اس بدترین صورتحال کا افسوسناک پہلو یہ ہے کہ اب دوبارہ کبھی کیمپ ڈیوڈ یا اس کے کارڈ جیسا کوئی مسئلہ اسرائیلیوں اور فلسطینیوں کے درمیان نہیں ہوگا کیونکہ 7 اکتوبر کو اسرائیل کے درمیان نہ صرف 120 اعتماد کا قتل ہوا بلکہ 120 سے زائد افراد کے درمیان اعتماد کا خاتمہ ہوا۔ اس دن فرقوں کو بھی مارا گیا۔ نتیجے کے طور پر، اب
یہاں نہ تو دو قومی نظریہ غالب ہو گا اور نہ ہی دو ریاستی حل ممکن ہو گا۔ تاہم ٹرمپ پیس روڈ میپ کے نکتہ نمبر 19 میں اسلامی عرب حکمرانوں کی خواہشات کا احترام کرتے ہوئے کہا گیا ہے کہ جب غزہ 9 ماہ میں مکمل ہو جائے گا اور فلسطینی اتھارٹی اس سلسلے میں اصلاحات مکمل کر لے گی تو فلسطینیوں کو اپنی خود مختار ریاست کے قیام کا امکان ہو گا۔ امریکہ اسرائیل اور فلسطینیوں کے درمیان کشمکش کا آغاز کرے گا تاکہ پرانے بقایاجات کے لیے سیاسی حل تک پہنچا جا سکے۔ خیال رہے کہ غزہ پیس روڈ میپ کا بنیادی مقصد دو سال سے جاری اس خونریز جنگ کو ختم کرنا ہے، جس میں اب تک کئی بے گناہ جانیں جا چکی ہیں، جس کی وجہ سے غزہ تباہی کا شکار ہے۔ کبھی خوشحال شہر اور قصبے کھنڈرات کے ڈھیر لگتے ہیں۔ اس دوران بستیوں کے انفراسٹرکچر میں خامیوں پر بات ہوئی۔ درحقیقت اس نکتے کی تجویز کے بارے میں یہ بحث چل رہی تھی کہ اگر حماس کی افواج اپنی بقا کے لیے اپنے لوگوں کو ہراساں کر رہی ہیں تو وہ ایسا کر سکیں گی۔ اور اگر وہ یمنیوں کو ڈھال کے طور پر استعمال کر رہے ہیں تو پھر کیوں نہ ان لوگوں کو مختلف گروہوں اور دھڑوں میں تقسیم کرکے دوسرے مختلف علاقوں میں ان کی آباد کاری کو یقینی بنایا جائے۔ اس کے نتیجے میں اسرائیل نہ صرف غزہ بلکہ مغربی کنارے کے علاقے کو بھی ضم کر لے گا۔ اب کم از کم ٹرمپ کے امن منصوبے میں یہ واضح کر دیا گیا ہے کہ اسرائیل نہ تو غزہ پر قبضہ کرے گا اور نہ ہی اس کے کسی حصے کو الحاق کرے گا۔ جیسے ہی اسرائیلی سکیورٹی فورسز ایک ایک کر کے غزہ سے نکلیں گی، بین الاقوامی دفاعی افواج آہستہ آہستہ اس کا کنٹرول سنبھالیں گی اور یہاں استحکام قائم کر لیں گی۔ یہاں تک کہ اگر امریکہ اس امن روڈ میپ کو مسترد کرتا ہے یا کوئی عارضی اقدام اختیار کرتا ہے تو بھی بین الاقوامی دفاعی اور استحکام کی افواج ان علاقوں میں اپنی امن امدادی کارروائیاں جاری رکھیں گی جو ان کے حوالے کیے گئے ہیں۔ ٹرمپ کے غزہ امن منصوبے کا بنیادی نکتہ یہ ہے کہ غزہ کو دہشت گردی اور انتہا پسندی سے پاک ایک خالص علاقہ بنایا جائے گا جس سے اس کے ہمسایہ ممالک اسرائیل اور مصر کو کوئی خطرہ نہیں ہوگا۔ غزہ کو دوبارہ تعمیر کیا جائے گا تاکہ وہاں کے رہنے والے اس سے مستفید ہو سکیں۔ درویش یہاں ایک لافانی اعلان کرنا چاہتا ہے کہ غزہ کے اس امن منصوبے کا اصل نقصان نہ تو کسی عام فلسطینی کو ہے، نہ اسرائیلیوں کو، نہ کسی عام عرب یا غیر عرب کو۔ اس کا اصل ہدف صرف حماس ہے جس کے دہشت گردوں کو عام معافی اور جان کی حفاظت دی گئی ہے۔ شک نمبر چھ کے مطابق یمنیوں کی رہائی اور قیدیوں کی منتقلی کے بعد حماس کے وہ ارکان جو مکمل امن اور ہتھیار ڈالنے پر رضامند ہوں گے انہیں عام معافی دی جائے گی۔ جو لوگ غزہ میں رہنا چاہتے ہیں اور جو لوگ وہاں سے نکلنا چاہتے ہیں انہیں محفوظ راستہ دیا جائے گا اور انہیں قبول کرنے والے ملک جانے کی سہولت دی جائے گی۔ اس کے باوجود درویش کو یقین ہے کہ حماس اس منصوبے کو اپنی سیاست یا اقتدار کی موت سمجھے گی۔ اس لیے یہ اسے ترک کر سکتا ہے یا کر سکتا ہے۔ تاہم یہ اس لحاظ سے بھی بے بس ہے کہ اسے اب ایران کے علاوہ کوئی بیرونی حمایت حاصل نہیں ہے جس کا اثر پہلے ہی کم ہو چکا ہے۔ نہ ہی ترکی اور نہ ہی قطر محدود مالی امداد کے علاوہ زیادہ اثر و رسوخ استعمال کرنے کی پوزیشن میں ہیں۔ تاہم عوامی سطح پر عرب اور غیر عرب مسلمانوں کے بنیاد پرست گروہ اور تنظیمیں حماس کی کسی حد تک حمایت کر سکتی ہیں یا کر رہی ہیں۔ اس کے باوجود حماس اپنے آپ کو بچانے کے لیے زیادہ دیر تک اپنی عسکری تحریک جاری نہیں رکھ سکے گی۔ یہ اس کے لیے ایک اہم موقع ہے کہ وہ جو معافی وصول کر رہی ہے اسے ضائع نہ ہونے دیں۔ جیسا کہ پیراگراف پانچ میں کہا گیا ہے، اپنی 20 زندہ اور 24 لاشیں برآمد کرنے کے بعد، اسرائیل حماس یا غزہ کے 250 قیدیوں کو رہا کرے گا جنہیں اسرائیلی عدالتوں نے سزا کے بعد عمر قید کی سزا سنائی ہے۔ بعد ازاں گرفتار کیے گئے 1700 دیگر فلسطینیوں کو بھی رہا کر دیا جائے گا جن میں خواتین اور بچے بھی شامل ہیں۔ ایک اسرائیلی کی لاش کے بدلے 15 فلسطینیوں کی لاشیں واپس کی جائیں گی۔ شک نمبر 13 کے مطابق حماس یا کسی دوسرے جنگجو گروپ کا غزہ کی حکمرانی میں براہ راست یا بالواسطہ کوئی کردار نہیں ہوگا۔ دہشت گردی کے تمام ٹھکانے، ڈھانچے، سرنگیں اور اسلحہ بنانے والی فیکٹریوں کو تباہ کر دیا جائے گا۔ غزہ کو غیر مسلم قرار دیا جائے گا، غیر جان لیوا مبصرین کی نگرانی میں ہتھیاروں کو غیر موثر کر دیا جائے گا۔ درویش کے خیال میں اس روڈ میپ کا سب سے خوبصورت پہلو شک نمبر 18 ہے جس کے مطابق اسرائیلیوں اور فلسطینیوں کی ذہنی حالت کو بدلنے، بنیادی اختلافات کو ختم کرنے اور امن کے فوائد کو ذہنی نقطہ نظر سے اجاگر کرنے کے لیے بین المذاہب مکالمے کا آغاز کیا جائے گا۔ یہ مذہبی منافرت سب سے زیادہ خونریزی اور تشدد کی جڑ ہے۔ جب تک یہ مسئلہ حل نہیں ہو گا، سماجی اصلاح کے میدان میں کوئی پیش رفت نہیں ہو گی۔ اور اگر صفائی نہ ہو تو لاکھوں سکیمیں بنا لیں سب ناکام ہو جائیں گی۔
The source provides an extensive transcript from a YouTube video offering a comprehensive Excel course designed for quick preparation and revision, particularly for job interviews. The tutorial begins with fundamental Excel concepts like rows, columns, and cells, before moving into essential functionalities such as data entry techniques, including the use of formatting and keyboard shortcuts. A significant portion of the content covers various data types and number formatting, followed by detailed explanations of advanced features like conditional formatting and data filtering. Finally, the video introduces a variety of critical Excel formulas, including RANK, IF, SUMIF, VLOOKUP, and XLOOKUP, alongside a promotional section about the Certified Management Accountant (CMA) certification from Zel Education.
Essential Excel Features and Formulas for Quick Reference
The Excel course content focuses on providing a quicket revision of essential features and formulas, often useful for interview preparation. The instruction emphasizes hand-picked features and formulas that are considered highly important.
The course covers content across several key categories, including basic terminology, data entry and formatting, fundamental formulas, and advanced features:
1. Excel Basics and Interface
The course begins by defining the core components of the Excel interface, noting that while often not asked in interviews, this knowledge is fundamental for using formulas.
Sheets and Zoom: Demonstrates how to add new sheets using the plus sign and how to zoom in and out of the worksheet.
Rows, Columns, and Cells: Defines columns (labeled A, B, C, etc.) and rows (labeled 1, 2, 3, etc.). A cell is the box formed by the intersection of row and column lines (e.g., C13), and understanding this relationship is crucial because formulas rely on it. The Name Box displays the name of the currently selected cell.
Data vs. Formatting: Explains the distinction between raw Data (information) and Formatting (decoration or presentation).
2. Formatting, Data Entry, and Shortcuts
A significant portion of the course involves using shortcuts and formatting tools to improve data presentation and efficiency.
Formatting Options: Formatting features are primarily found in the Home tab and include the Font, Alignment, and Number groups. Professional data presentation requires using appropriate fonts (like Aptos, Arial, or Calibri) and professional colors (such as blue, black, burgundy, dark green, or grey).
Alignment: Demonstrates using Merge & Center to center headings across multiple columns.
Shortcuts: The instructor heavily emphasizes using shortcut keys, noting that the Alt key activates the on-screen keys, allowing users to follow the path (e.g., Alt + H for Home tab) to execute commands. Specific shortcuts covered include:
Merge & Center: Alt + H + M + C.
Select All Data: Ctrl + A.
All Borders: Alt + H + B + A.
Thick Border: Alt + H + B + T.
Fill Handle: Used to quickly generate series (like serial numbers).
Data Entry Form Hack: Provides a hack to quickly enter data using a form interface via the shortcut Alt + D + O.
Format Painter: Allows copying the formatting from one cell or range to another quickly.
3. Number Formats and Data Types
The content details how different types of data are handled in Excel, which is important for understanding calculations and presentation.
Data Types: Discusses common formats, including Numbers (whole and decimal), Text, Percentage, Currency, and Accounting formats.
Observation Tip: Text typically aligns to the left of the cell, while numbers align to the right.
Date and Time: Covers Short Date (e.g., 16/9/2025) and Long Date (e.g., 16 September 2025). The course extensively explains Custom Date Formatting, where date components are represented by D (Day), M (Month), and Y (Year). The number of times the letter is repeated dictates the format (e.g., four D’s for the full day name).
Decimal Management: Shows how to use the Increase/Decrease Decimal options.
Fixing Errors: Explains that the “######” error indicates that the cell width is too small to display the number, which can be fixed by double-tapping between column headers.
Date Shortcut: Provides the shortcut Control + Semicolon to insert the current date.
4. Data Arrangement and Visualization Features
The course introduces powerful features for analyzing and manipulating data sets.
Conditional Formatting and Filtering
The video contrasts Conditional Formatting and Filtering, noting they share similar options.
Conditional Formatting: Applying formatting (colors, fonts, etc.) based on defined rules or conditions (e.g., coloring a cell green if the value is greater than 50%). Rules demonstrated include Greater Than, Less Than, Between, Equals To, Text That Contains, Date Occurring, and identifying Duplicate Values.
Filtering: Allows users to display only a subset of the data (e.g., only data from Gujarat) by hiding non-matching entries. The shortcut for applying or removing filters is Ctrl + Shift + L.
Sorting and Series
Sorting (Arrangement): Arranging data based on Text (A to Z), Numbers (Smallest to Largest), or Dates (Oldest to Newest). It also covers Sort by Color.
Fill Series: A method to quickly generate long sequential lists (numbers or dates) by selecting the initial value, navigating to Fill > Series (Shortcut: Alt + H + F + I + S), specifying the column, and setting a stop value (e.g., 10,000).
Find and Replace
The Find function (Shortcut: Ctrl + F) allows searching for specific text within the current sheet or the entire workbook.
The Replace function is used to automatically substitute found text with new text across the selected area or workbook.
Advanced Features
Flash Fill: Available after the 2019 version, Flash Fill recognizes patterns based on a single example provided by the user (e.g., combining names) and applies that pattern to the entire column. The shortcut is Ctrl + E.
Table Creation: Converting a data range into a Table (Shortcut: Ctrl + T) provides dynamic features, including the automatic application of formatting and formulas to new entries, and enabling the use of Slicers for easy interactive filtering. Tables can be converted back to a normal range if needed.
Pivot Table and Pivot Chart: The course shows how to create both a Pivot Table and a Pivot Chart simultaneously using the shortcut Alt + D + P. This allows users to summarize data, show values as ranks or percentages, and insert analytical tools like Slicers and Timelines.
Data Validation (Dropdowns): Demonstrated as a method to create dropdown lists within cells, either based on an existing list or by manually entering values separated by commas.
5. Essential Formulas
The course covers several mandatory formulas, grouped by category:
CategoryFormulaDescription/Key RequirementBasic MathSUMBasic addition. Shortcut is Alt + Equals.CalculationPercentageCalculated using division; requires absolute cell reference (F4) to fix the denominator (total) when applied across multiple rows.StatisticalRANKCalculates the position of a number within a set of numbers; requires fixing the reference range using F4.ConditionalSUBTOTALUsed instead of SUM when working with filtered data, as it provides accurate totals only for the visible, filtered data. (Uses function number 9 for SUM).ConditionalSUMIFCalculates the sum of values based on a single specified criterion (e.g., total sales for one specific customer).LogicalIFApplies a conditional test; returns one value if the condition is True and another if False. Output text must be in double inverted commas.TextPROPERConverts text to sentence case (proper capitalization).Text/DateTEXTUsed primarily with dates to return the day (e.g., “Tuesday”) or month name based on format codes.DateDAYSCalculates the difference in days between two dates.DateEDATECalculates a future date by adding a specified number of months to a start date.LookupVLOOKUPRetrieves information from master data; cannot be used if the lookup value is duplicated. Requires column index number.LookupXLOOKUPAn alternative to VLOOKUP (available post-2019) that requires a lookup array and a return array, simplifying the process.
Excel Data Entry Fundamentals and Formatting
Data Entry basics in Excel involve a combination of accurately inputting information (Data) and subsequently improving its presentation (Formatting).
A data entry operator’s task is to transcribe available information (such as bills) into Excel and then apply necessary formatting.
Here is a detailed discussion of the fundamental aspects of Data Entry according to the course content:
1. Fundamental Terminology and Distinction
To perform data entry effectively, it is necessary to understand the basic elements of the Excel interface:
Rows and Columns: Data is entered into cells defined by rows (labeled 1, 2, 3, etc.) and columns (labeled A, B, C, etc.).
Cell: A cell is the box formed by the intersection of row and column lines. Understanding the row and column structure is crucial because it forms the basis of the cell name (e.g., C13) and is the backbone for formulas. The Name Box displays the name of the currently selected cell.
Data vs. Formatting:Data refers to the raw information itself.
Formatting is the process of decorating or presenting the data (e.g., applying colors, fonts, borders, or alignment). Proper representation of data always requires formatting. Formatting options are generally found in the Home tab, specifically in the Font, Alignment, and Number groups.
2. Setting Up the Data Entry Table
The physical act of data entry begins with structuring the worksheet:
Headings: Data entry requires setting up appropriate headings (e.g., Serial Number, Party Name, Amount).
Merging Headings: To center a main heading (like “XYZ Limited”) across multiple columns, the Merge & Center feature is used. Using the shortcut key for this process is recommended.
Merge & Center Shortcut:Alt + H + M + C. This shortcut is derived by pressing Alt (the activation key), followed by H (for the Home tab), M (for Merge), and C (for Center).
Data Input and Series Generation: After setting up headings, entries are written sequentially. For sequential numbers (like serial numbers), the Fill Handle can be used. By selecting the first two numbers (e.g., 1 and 2) and dragging the fill handle, the rest of the numbers in the series can be automatically generated.
3. Applying Borders and Enhancing Presentation
Once the data is entered, formatting is applied for professional presentation:
Selecting Data: The shortcut Ctrl + A (Control + All) is used to select the complete dataset.
Applying Borders:All Borders: To apply borders to every cell within the selected data, the shortcut is Alt + H + B + A.
Thick Border: To apply a darker, thicker border around the outside of the data range, the shortcut is Alt + H + B + T.
Color and Font:Filling Color: The “bucket” tool is used to fill entire cells with color. When choosing colors, use darker shades for higher elements and complementary lighter shades below (e.g., dark blue contrasts well with light grey).
Font Color: The ‘A’ symbol is used to change the font color.
Professional Fonts: It is recommended to use professional, simple fonts such as Aptos, Arial, or Calibri.
Professional Colors: Recommended professional colors include blue, black, burgundy, dark green, and grey.
Bold/Italic: The Bold option can be used to make text thicker, often used for headings.
4. Advanced Data Entry Method (The Form Hack)
The course highlights a rapid data entry method using a built-in form interface:
Form Shortcut: To enter data using a form, select the data range and press Alt + D + O.
This method allows continuous entry without the need to apply macros or manual setup. New entries are generated by navigating to “New” and pressing Enter after inputting the information.
5. Data Type Observation
While entering data, a basic observation can distinguish between text and numbers:
Text vs. Numbers: Text generally aligns to the left side of the cell, whereas numbers align to the right side.
Essential Excel Formulas and Functions Reference
The course content provides a quick revision of essential formulas and functions, emphasizing those that are most important and often asked about in interviews. Formulas are considered the backbone of Excel.
The formulas and functions discussed fall into several categories, including basic mathematics, statistical calculations, conditional logic, text manipulation, date calculations, and lookup functions.
1. Basic Calculation and Statistical Formulas
These formulas handle fundamental mathematical and ranking operations:
FormulaDescriptionKey RequirementSUMCalculates basic addition.A shortcut is available: Alt + Equals (=), which automatically takes the complete range above the current cell.PercentageCalculated using division, as there is no dedicated percentage function.Requires taking the student’s total marks (numerator) divided by the grand total (denominator, e.g., 400). If the denominator cell is used, it must be fixed using F4 so that the reference does not change when the formula is copied down.RANKDetermines the position of a number within a set of numbers.Requires two inputs: the number to be checked (e.g., a student’s percentage) and the complete reference range of all numbers (e.g., all student percentages). The reference range must be fixed using F4. Users must also choose between descending or ascending order.SUBTOTALCalculates totals (like SUM) but is specifically designed for use with filtered data.Unlike the standard SUM formula, SUBTOTAL provides accurate totals only for the currently visible, filtered data. When using SUBTOTAL, you input the function number (e.g., 9 for SUM) followed by the reference range. This is necessary because the normal SUM formula will show the total of the entire dataset, even if a filter is applied.SUMIFCalculates the sum of values based on a ** single specified criterion**.Requires providing a range (where to look for the criterion), the criteria itself (what to look for, e.g., a specific party name like “Swift Nova”), and the sum range (the column containing the values to be summed). All ranges should typically be fixed using F4.2. Logical and Conditional Formulas
The IF function is considered “universal” and mandatory for any complex work involving dashboards or sheets.
FormulaDescriptionKey RequirementsIFApplies a conditional test and returns one value if the condition is True, and another if False.Logical Test: The condition to be checked (e.g., is the percentage greater than 50%?). Value if True/False: The outputs if the condition is met or not met. Any text output (like “Pass” or “Fail”) must be enclosed in double inverted commas.3. Text and Date Formulas
These formulas assist in reformatting text and performing time-based calculations:
FormulaDescriptionKey RequirementsPROPERConverts text into sentence case (proper capitalization).Requires selecting the text cell. This is useful for cleaning up data where names or phrases might be entered in all small or all capital letters.TEXTPrimarily used with dates to extract specific components like the full day or month name.Requires the value (the date cell) and the format (the code defining what to extract, enclosed in double inverted commas). For example, typing “DDDD” will return the full day name (e.g., “Tuesday”).DAYSCalculates the difference in the number of days between two specified dates.The syntax requires providing the end date first, followed by the start date.EDATECalculates a future due date by adding a specified number of months to a starting date.Requires the start date and the number of months to add.4. Lookup Formulas
Lookup formulas are crucial for retrieving information from a master dataset into a report or summary.
FormulaDescriptionKey RequirementsVLOOKUPRetrieves information from a table based on a lookup value.Crucially, the lookup value (the item being searched for, e.g., “Bharat Innovation”) cannot be duplicated in the master data. Requires specifying the lookup value, the complete table array (the data range, often excluding headers), and the column index number (the number of the column containing the desired answer). For an exact match, the final argument should be set to FALSE.XLOOKUPAn alternative to VLOOKUP and HLOOKUP, available in Excel versions after 2019.It is considered much easier to use. It requires the lookup value, the lookup array (just the column where the lookup value is found), and the return array (just the column where the desired answer is located). Similar to VLOOKUP, the lookup value should not be duplicated.5. Features Related to Formulas
In addition to formulas, the course touches on features that automate pattern recognition and data manipulation:
Flash Fill (Control + E): This feature, available after the 2019 version, works based on pattern recognition. If the source data and the desired output follow a similar pattern (e.g., combining first and last names), the user provides one example answer, and Flash Fill automatically generates the rest of the output for the entire column.
Dynamic Tables: Converting data to a Table (Shortcut: Ctrl + T) makes formulas dynamic, meaning they automatically extend and apply to new entries added to the table.
Excel Conditional Formatting and Rules
Conditional Formatting is a vital feature in Excel that allows you to apply formatting (decoration) to cells based on specified conditions or rules. The name itselfConditional Formatting is a vital feature in Excel that allows you to apply formatting (decoration) to cells based on specified conditions or rules. The name itself explains its function: you are applying formatting using a condition.
Conditional Formatting and Filtering share similar options, although they serve different purposes. The rules for Conditional Formatting are primarily found under the Home tab.
Purpose and Mechanism
Conditional Formatting means applying formatting—such as colors, fonts, borders, alignment, or number format—with a condition.
For example, you might set a rule: “If the cell’s amount is greater than 100, color it green; otherwise, color it red”. The formula acts like an “If” condition, where if a criterion is met, the decoration is applied.
Key Rules and Conditions
The course content demonstrates several essential rules found within the Conditional Formatting feature:
Greater Than / Less Than: You can highlight values that are above or below a specified number.
Example: Highlighting quantities greater than 10 with red color.
Example: Highlighting quantities less than 7 with green color.
Between: This rule highlights values that fall within a defined range (e.g., between 10 and 15).
Equals To: This highlights cells containing a specific, exact value (e.g., 20).
When using Equals To, you can apply a Custom Format, allowing you to choose specific fill colors (e.g., blue) and font colors (e.g., white and bold) that are not available in the preset options.
Text That Contains: This highlights cells where the text includes a specific string.
Example: If you select a column and set the rule to highlight cells containing “प्रदेश,” it will highlight “Uttar Pradesh,” “Madhya Pradesh,” and “Himachal Pradesh” because they all contain the specified text.
Date Occurring: This allows you to highlight dates based on their relationship to the current date, such as Yesterday, Tomorrow, or Today.
Duplicate Values: This feature quickly identifies and highlights any values that are repeated within the selected range.
Top/Bottom Rules: You can highlight the Top 10 items or Top 10 Percentage of values in the selection.
Data Bars, Color Scales, and Icon Sets: Beyond highlighting text or numbers, Conditional Formatting offers graphical visualization options like Data Bars, Color Scales, and Icon Sets.
Managing Conditional Formatting Rules
Rules can be cleared or managed in two ways:
Clear Rules from Selected Cells: Removes formatting only from the specific area you have selected.
Clear Rules from Entire Sheet: Removes all Conditional Formatting rules applied across the entire worksheet.
Manage Rules: Used to view or edit existing rules, such as correcting an incorrect range selection.
Distinction from Filtering
While Conditional Formatting options are very similar to those found in Filter dropdowns (e.g., Greater Than, Text That Contains, Date Occurring), their core difference lies in how they display the data:
FeatureConditional FormattingFilteringData DisplayAll data remains visible (e.g., 10,000 entries).Only the matching subset of data is displayed (e.g., 2,000 entries).HighlightingThe results that meet the condition are highlighted with color.The results that do not meet the condition are hidden (data is not deleted).Conditional Formatting is preferred when you want the complete dataset to remain visible, but certain data points need to be visually highlighted.
Excel Data Validation: Creating Dropdown Lists
Data Validation is a feature in Excel primarily used to create dropdown menus within cells. It offers a way to restrict or guide the type of data that can be entered into a cell or range, thereby ensuring consistency and ease of data entry.
The course content demonstrates two primary methods for setting up dropdowns using Data Validation:
1. Creating Dropdowns from an Existing List (Source List)
If you already have a set of unique values prepared in a range (such as unique party names or categories), you can use this range as the source for your dropdown list.
Process:Select the cell(s) where you want the dropdown to appear.
Navigate to the Data tab.
Go to Data Validation.
In the Data Validation window, under the “Allow” setting, choose List.
In the “Source” field, select the range of cells containing the unique values (the pre-existing list).
Click Enter or OK.
Result: The selected cells will now have a dropdown arrow, allowing users to select any value from the source list. This can be dragged down to apply the validation to more cells.
2. Creating Dropdowns by Manually Entering Values
If the list of possible entries is small or static, you can manually type the options directly into the Data Validation source box.
Process:Select the cell(s).
Go to Data > Data Validation.
Under the “Allow” setting, choose List.
In the “Source” field, manually enter the desired values, ensuring they are separated by commas.
Example: To create a dropdown for typical survey responses, you would enter Yes, No, I don’t know.
Click OK.
Result: The dropdown will contain only the options you typed.
Other Data Validation Applications
The Data Validation feature is capable of more than just creating dropdowns. It can be used to set restrictions on data entry.
The options available within Data Validation (such as Number, Decimal, etc.) are similar to those found in Conditional Formatting.
While the course primarily uses Data Validation to teach the creation of dropdowns, it is noted that this feature can also be used for other types of data restriction.
Excel Mastery in 90 Minutes | Complete Excel Course in One Video
Action movies are known for their high-octane energy, jaw-dropping stunts, and larger-than-life heroes, but not every film in this genre manages to achieve those standards. Some movies, despite massive budgets, stellar casts, and promising premises, stumble spectacularly at the box office. Whether plagued by incoherent plots, poor performances, or chaotic direction, these misfires have earned a reputation for being among the worst the genre has to offer.
Even big franchises aren’t immune to failure—sequels, prequels, and reboots have often left fans scratching their heads. What could have been the next blockbuster hit turns into a forgettable flop, with dazzling explosions serving as mere distractions from convoluted storytelling. For moviegoers, there’s nothing more disappointing than realizing that the adrenaline rush they anticipated is replaced by frustration or boredom.
This list of the 60 worst action films ever made highlights just how wide the gap can be between expectation and execution. These movies have taught filmmakers hard lessons about the importance of pacing, character development, and meaningful plot twists. Sometimes, the pursuit of spectacle alone isn’t enough to carry a film, no matter how impressive the visual effects may be.
1 – The Last Witch Hunter (2015)
The Last Witch Hunter was set up to be a dark fantasy extravaganza, with Vin Diesel portraying a stoic, immortal hunter locked in a timeless battle against supernatural forces. Despite the alluring premise, the movie’s world-building lacked depth, and Diesel’s brooding performance felt more wooden than heroic. Critics agreed that it was weighed down by a disjointed plot and unimaginative visuals that failed to immerse viewers in its fantasy realm. With so much potential squandered, this film stands as a textbook example of how not to blend fantasy with action.
What makes The Last Witch Hunter particularly frustrating is its tonal inconsistency—it tries to balance gravitas with humor but ends up achieving neither effectively. The film drags in parts, making the stakes feel non-existent despite the epic nature of the conflict. Roger Ebert famously remarked that “a good action movie doesn’t just show action; it makes us care about it.” This film, unfortunately, proves the opposite. The visuals may sparkle momentarily, but the lack of emotional resonance makes it an unmemorable watch.
Keywords: Vin Diesel, fantasy action flop, disjointed plot, failed execution
Rambo III tried to ride the wave of success from its predecessors, but it quickly became a cautionary tale of diminishing returns. While the original First Blood was a nuanced character study, this sequel reduced John Rambo to a caricature of himself—an unstoppable war machine without meaningful character depth. Critics found fault with its exaggerated action sequences, which, though entertaining, often bordered on the absurd. The political backdrop of the Soviet-Afghan conflict also feels awkwardly handled, offering little more than a shallow depiction of global tensions.
The movie’s bloated budget didn’t translate into a gripping narrative, and the lack of emotional stakes was hard to ignore. With dialogue that felt stilted and over-the-top action that seemed to prioritize explosions over substance, Rambo III fell flat. As film scholar David Bordwell notes, “Action without consequence is spectacle without meaning,” and this movie serves as a prime example of how spectacle alone cannot salvage a weak script.
Keywords: Rambo III, diminishing returns, shallow narrative, exaggerated action
Michael Bay’s Transformers: Revenge of the Fallen is infamous for being the sequel that took everything overboard—louder explosions, faster cuts, and more incoherent subplots. While the first Transformers film managed to balance chaos with heart, this installment spirals into sensory overload. The visual effects are impressive, but they come at the expense of character development and a coherent storyline. Viewers are bombarded with frenetic sequences, leaving little room for meaningful moments to sink in.
The film also suffered from poorly executed humor and convoluted plot elements. While the inclusion of mystical symbols and ancient Decepticons could have added depth, it only served to complicate an already messy narrative. As media critic Thomas Schatz points out, “Sequels often collapse under the weight of their own ambition,” and Revenge of the Fallen is a prime example. Despite its commercial success, the film remains a critical failure, leaving even die-hard fans exhausted rather than exhilarated.
These three films exemplify how ambition without proper execution can result in cinematic disasters. Each of them—The Last Witch Hunter, Rambo III, and Transformers: Revenge of the Fallen—tried to deliver action-packed experiences but fell short in crucial aspects like narrative cohesion, character depth, and emotional engagement. Whether due to tonal inconsistency, exaggerated action, or overloaded visuals, these films left audiences feeling more frustrated than entertained.
In action movies, as in any genre, balance is key. A strong story can elevate stunning visuals, but when that story falters, even the most spectacular special effects lose their impact. These films remind filmmakers and fans alike that the most memorable action movies don’t just rely on explosions—they tell stories that resonate, with characters audiences care about. For anyone looking to understand what not to do in action filmmaking, these titles are essential case studies.
Keywords: action movies, cinematic disasters, poor storytelling, lessons from film flops
Despite its intriguing premise, Empire State fails to deliver the tension and excitement that a heist film demands. Starring Liam Hemsworth and Dwayne Johnson, the movie tells the story of two friends who plan to rob an armored-car depot. However, what should have been a taut crime thriller becomes a dull and formulaic affair. The plot unfolds predictably, leaving little room for suspense or emotional stakes. Hemsworth’s performance feels uninspired, and even Johnson’s charismatic screen presence can’t rescue the sluggish pacing.
The film also struggles with character development. Instead of diving into the motivations and dilemmas of the protagonists, Empire State skims the surface, resulting in characters that feel two-dimensional. As crime film expert Steve Cohan notes, “A great heist movie needs not just a clever plan, but characters we care about.” Unfortunately, this film lacks both. The few moments of action are poorly executed, making it hard for viewers to stay engaged. Ultimately, Empire State fails to capitalize on its potential, leaving audiences with a forgettable experience.
Keywords: heist movie flop, Liam Hemsworth, poor pacing, missed potential
Chaos Walking promised to be an innovative sci-fi adventure, set on a planet where every thought is visible and audible. With a cast led by Tom Holland and Daisy Ridley, expectations were high, but the film suffered from severe narrative issues. The concept of “The Noise,” which allows everyone to hear each other’s thoughts, is interesting on paper but becomes confusing and exhausting in execution. The film struggles to balance its complex sci-fi elements with meaningful character arcs, leading to a fragmented viewing experience.
Director Doug Liman attempted to adapt a dense novel series into a coherent film, but the result feels rushed and incomplete. The chemistry between the leads is underwhelming, and the story lacks the emotional depth needed to anchor the spectacle. As film critic James Berardinelli suggests, “Good sci-fi isn’t just about ideas—it’s about how those ideas connect with the human experience.” Unfortunately, Chaos Walking fails to make that connection, leaving viewers disconnected from both the characters and the narrative.
Dwayne Johnson’s Skyscraper aimed to combine disaster film thrills with a high-stakes action narrative, but it stumbled under the weight of clichés and improbable plot points. The movie follows a security expert who must infiltrate a blazing skyscraper to rescue his family from criminals. Despite impressive visuals, the film’s heavy reliance on genre tropes—such as a hero with a tragic past and impossible stunts—makes it feel more like a hollow imitation of better films, such as Die Hard.
Though Skyscraper provides some visually exciting moments, the lack of originality and emotional engagement detracts from the overall experience. Johnson’s performance, while charismatic, can’t compensate for the film’s predictable storyline and thin characters. As Pauline Kael once remarked, “Spectacle without substance wears out quickly.” This perfectly encapsulates the issue with Skyscraper, which offers spectacle but little else, making it more of a fleeting thrill than a memorable action masterpiece.
Keywords: Dwayne Johnson, action movie clichés, spectacle without substance, failed disaster film
These three films—Empire State, Chaos Walking, and Skyscraper—highlight the pitfalls of uninspired storytelling, poor character development, and an over-reliance on spectacle. Despite featuring talented actors and ambitious premises, they falter under the pressure of high expectations. Whether it’s a crime thriller lacking tension, a sci-fi film lost in its own concept, or an action flick riddled with clichés, these movies serve as cautionary tales for filmmakers.
Successful action films require more than explosions and special effects; they need gripping narratives and characters with emotional depth. As these films demonstrate, even with big names and big budgets, execution is everything. They remind us that action, no matter how spectacular, must be grounded in compelling storytelling to leave a lasting impression.
Keywords: uninspired storytelling, action clichés, failed adaptations, lessons from movie flops
Shazam: Fury of the Gods had the potential to build on the charm of its predecessor, but it stumbled with a bloated plot and underdeveloped character arcs. While the original Shazam! struck a balance between humor, heart, and action, the sequel leaned too heavily into spectacle, sacrificing the emotional core that made the first film resonate with audiences. Despite the return of Zachary Levi’s playful performance as the superhero alter-ego of Billy Batson, the storyline felt cluttered with too many subplots and new characters, which made it difficult for any of them to leave a lasting impression.
The movie also struggled with tone, veering awkwardly between juvenile comedy and mythological drama. With antagonists that lacked depth and stakes that felt unearned, the film left both fans and critics underwhelmed. Film scholar Linda Hutcheon argues that “sequels must offer more than repetition—they must evolve,” but Fury of the Gods fails to achieve that evolution. Its reliance on formulaic tropes, rather than meaningful growth, makes it an unfortunate example of how sequels can falter when they lose sight of what made the original successful.
Blade: Trinity closed out the Blade trilogy on a disappointing note, lacking the edge and intensity that defined the first two films. Wesley Snipes’ portrayal of the vampire hunter felt subdued, with behind-the-scenes production troubles reportedly affecting the film’s quality. The introduction of the Nightstalkers—a team of vampire hunters played by Ryan Reynolds and Jessica Biel—was intended to inject new energy, but it only diluted the focus on Blade himself. Furthermore, the decision to cast Dracula as the main villain came across as uninspired, turning what could have been a climactic showdown into a lackluster confrontation.
The film’s tonal imbalance also contributed to its downfall, shifting awkwardly between dark horror and campy humor. Reynolds’ comedic banter clashed with the grim atmosphere of the original films, leaving audiences confused about what the movie wanted to be. As film theorist Richard Dyer notes, “Consistency in tone strengthens immersion,” and the lack of cohesion in Blade: Trinity disrupted viewers’ engagement. The movie serves as a cautionary example of how overcomplicating a narrative and diluting the protagonist’s role can diminish a once-promising franchise.
Based on Philip Reeve’s popular novel, Mortal Engines offered a fascinating concept: massive, mobile cities devouring each other to survive. However, the movie’s stunning visuals could not mask the glaring flaws in its storytelling and character development. Despite being produced by Peter Jackson, the narrative feels rushed and overly complicated, failing to effectively translate the novel’s intricate world-building onto the big screen. Critics noted that the spectacle of moving cities loses its novelty quickly, as the film struggles to maintain narrative momentum.
The characters, though promising, were poorly fleshed out, leaving audiences disconnected from their personal struggles and relationships. In the words of screenwriting expert Robert McKee, “Spectacle can excite, but only story can inspire.” Unfortunately, Mortal Engines relied too much on its visual grandeur, neglecting the emotional engagement needed to carry a high-concept film. The result is a movie that, while visually impressive, feels hollow and forgettable, making it a classic example of style over substance.
These three films—Shazam: Fury of the Gods, Blade: Trinity, and Mortal Engines—highlight the importance of balance in filmmaking. Each one aimed to deliver an engaging experience but faltered due to a combination of narrative missteps, tonal inconsistencies, and underwhelming character development. Sequels and adaptations face the unique challenge of meeting expectations while offering something fresh, and these films failed to find that sweet spot.
These misfires remind us that action and spectacle alone cannot sustain a film. The heart of every successful story lies in well-developed characters and a cohesive plot that resonates with the audience. As these films demonstrate, even big franchises and visually stunning concepts are not immune to failure when execution falls short. For those studying the pitfalls of filmmaking, these titles offer valuable lessons in how overreliance on spectacle and poor narrative choices can derail even the most ambitious projects.
The 2015 Point Break remake attempted to modernize the beloved 1991 cult classic but ended up as a soulless, CGI-heavy disappointment. While the original film, starring Keanu Reeves and Patrick Swayze, captivated audiences with a blend of genuine friendship, thrilling stunts, and philosophical undertones, the remake is more concerned with extreme sports montages than storytelling. The narrative trades emotional weight for dazzling visuals, with action sequences that, though impressive, feel hollow without meaningful stakes or character development.
The new Point Break tries to add depth by incorporating environmental activism into its plot, but this theme feels forced and underdeveloped. As film theorist Noël Carroll argues, “True engagement in action cinema comes from emotional investment, not spectacle alone.” Unfortunately, the flat performances, uninspired dialogue, and lack of chemistry among the characters make it difficult for viewers to care about their fates. The remake serves as a reminder that flashy action cannot replace substance, making it a textbook example of how not to reboot a beloved classic.
Keywords: Point Break remake, hollow spectacle, poor storytelling, failed reboot
Gemini Man had the unique advantage of featuring Will Smith in a dual role, portraying both an aging assassin and a younger clone of himself. Despite this intriguing concept, the film was weighed down by uninspired writing and lackluster pacing. Directed by Ang Lee, the movie leaned heavily on technological innovations, including high-frame-rate filming and de-aging effects, but the narrative failed to match the ambition of its visuals. The emotional conflict between the two versions of the same character feels undercooked, leaving audiences disconnected from the film’s core drama.
Critics also pointed out that the movie’s philosophical themes, such as identity and moral accountability, were explored superficially. As film critic Mark Kermode noted, “Technology can be mesmerizing, but it’s the story that holds the magic.” In Gemini Man, the reliance on special effects over meaningful storytelling left audiences feeling underwhelmed. While the action sequences were competently choreographed, they lacked the emotional weight needed to make the film memorable, leading to a costly box-office disappointment.
Keywords: Gemini Man failure, de-aging technology, shallow themes, Will Smith dual role
The 355 aimed to be a globe-trotting, female-led spy thriller but ultimately failed to deliver the thrills expected from its genre. Despite its star-studded cast—featuring Jessica Chastain, Penélope Cruz, Lupita Nyong’o, and Diane Kruger—the film struggled with a formulaic plot that lacked originality. The action sequences were competent but uninspired, and the pacing issues made it difficult for the movie to build tension. Critics noted that the film’s narrative felt like a collection of genre clichés without any fresh twists to set it apart from more successful spy movies.
Moreover, the film’s attempt to convey themes of female empowerment fell flat due to poorly written characters. Instead of giving the talented cast meaningful roles to shine, the screenplay reduces them to stereotypes, making their motivations feel contrived. As feminist film critic Molly Haskell writes, “Empowerment on screen is meaningless if it’s not accompanied by narrative depth.” Unfortunately, The 355 sacrifices character development for generic action, resulting in a movie that neither excites nor inspires.
These three films—Point Break, Gemini Man, and The 355—highlight the recurring pitfalls of prioritizing spectacle over substance. Each movie featured promising elements: a reboot of a classic, a dual-role performance from a major star, and an ensemble of talented actors. Yet, they all faltered due to weak storytelling, underdeveloped characters, and an overreliance on flashy visuals. These failures emphasize the importance of narrative cohesion and emotional depth, even in action-heavy films.
In the pursuit of high-concept premises and visual innovation, these films lost sight of the essentials that make action movies engaging: compelling characters, meaningful stakes, and well-paced narratives. Whether it’s a reboot gone wrong, technology overshadowing plot, or a missed opportunity for empowerment, these titles serve as cautionary tales for filmmakers. They remind us that great action films require more than adrenaline—they need heart, depth, and a story that resonates long after the explosions fade.
Keywords: reboot failures, action clichés, poor character development, narrative missteps
The 2016 remake of Ben-Hur attempted to reimagine the 1959 epic classic, but it faltered on almost every front. While the original film became legendary for its gripping story, emotional depth, and awe-inspiring chariot race, the remake struggles to live up to that legacy. Directed by Timur Bekmambetov, the film offers lackluster performances, rushed character arcs, and a diluted plot that lacks the emotional resonance of its predecessor. The CGI-heavy chariot race, which should have been the film’s highlight, feels hollow and fails to capture the thrill of the original’s practical effects.
Ben-Hur also suffers from an identity crisis, unable to decide whether it wants to be a character-driven drama or a full-blown action spectacle. As film critic Roger Ebert once said, “A great remake finds new depth, not just new effects.” Unfortunately, the 2016 version prioritizes spectacle over substance, resulting in a shallow, uninspired experience. By the end, the film’s message of redemption feels unearned, leaving audiences disengaged and critics unimpressed.
G.I. Joe: The Rise of Cobra aimed to establish a cinematic franchise based on the iconic toy line, but its over-the-top plot and excessive use of CGI left audiences and critics cold. The film is loaded with fast-paced action and high-tech gadgets, but these elements fail to compensate for the thin storyline and cartoonish characters. While the cast, including Channing Tatum and Marlon Wayans, tried to bring energy to their roles, the dialogue often feels forced and cliché.
The movie also struggled with pacing and coherence, cramming too many plotlines and set-pieces into a single film. As scholar David Bordwell notes, “Even in action cinema, clarity in storytelling is crucial.” The Rise of Cobra lacks that clarity, resulting in a chaotic narrative that confuses rather than excites. Though it was intended to kick off a franchise, the movie’s disappointing reception serves as a reminder that flashy visuals alone cannot carry an action film.
Keywords: G.I. Joe movie flop, chaotic narrative, excessive CGI, poor storytelling
Taken 3 attempts to conclude the Taken trilogy but falls short of recapturing the intensity and intrigue that made the original film a success. Liam Neeson reprises his role as Bryan Mills, but the plot—centered around him being framed for a murder he didn’t commit—feels stale and formulaic. The action scenes, though numerous, are marred by choppy editing and a lack of originality. Viewers expecting the taut, revenge-driven narrative of the first film were instead met with a convoluted plot that stretches the premise to its limits.
The emotional stakes, which were the driving force behind the first Taken, are also notably absent. Instead of a personal story of rescue and redemption, Taken 3 offers a disconnected series of chase scenes and shootouts. As storytelling expert John Yorke argues, “The heart of action stories lies in the protagonist’s emotional journey,” and Taken 3 fails to provide one. While Neeson’s performance is as reliable as ever, even his “particular set of skills” can’t save the film from mediocrity.
Keywords: Taken 3 flop, formulaic plot, lack of emotional stakes, weak trilogy conclusion
These films—Ben-Hur (2016), G.I. Joe: The Rise of Cobra, and Taken 3—demonstrate how ambitious projects can falter when spectacle overshadows storytelling. The remake of Ben-Hur attempted to modernize a classic but lost the heart and gravitas that made the original iconic. Similarly, G.I. Joe: The Rise of Cobra relied on CGI-fueled action but neglected plot clarity and emotional engagement. Meanwhile, Taken 3 overstretched a once-compelling premise, delivering a lackluster conclusion to an otherwise gripping series.
Together, these films highlight the importance of grounding action in meaningful stories. As these examples show, even with recognizable franchises, talented actors, and high production values, movies can fail if they lack coherence and emotional depth. Audiences crave more than explosions—they want characters they can connect with and narratives that resonate. These missteps offer valuable lessons for filmmakers: great action films are not just about thrills but about delivering a story that leaves a lasting impact.
Keywords: remake mistakes, franchise fatigue, shallow storytelling, action movie failures
Hot Pursuit aimed to blend comedy and action, but the result was an awkward film that failed to deliver on either front. Despite the star power of Reese Witherspoon and Sofía Vergara, their on-screen chemistry felt forced, and the humor relied heavily on stereotypes and slapstick gags that quickly wore thin. Critics and audiences found the plot predictable, with minimal suspense or meaningful character development to support the comedic tone. The film’s action sequences, meant to add excitement, were clunky and unimaginative, detracting from what little momentum the narrative had.
The movie’s biggest misstep lies in its inconsistent tone. It couldn’t decide whether it wanted to be a buddy-cop comedy or a road-trip adventure, resulting in a muddled experience that failed on both counts. Film theorist Steve Neale notes that genre blending can enhance films, but only when executed with finesse. In Hot Pursuit, the attempt to combine comedy with action falls flat, leaving viewers disengaged. This film serves as a cautionary tale for how even talented actors can’t salvage a project without a solid script and clear direction.
Keywords: Hot Pursuit failure, weak comedy, forced chemistry, muddled tone
The 2018 Robin Hood reimagining attempted to modernize the legendary outlaw’s story with flashy visuals and frenetic action, but it was met with widespread criticism for being style over substance. Starring Taron Egerton and Jamie Foxx, the film leaned heavily into action sequences and slow-motion effects, giving it the feel of a video game rather than a compelling historical drama. Its attempts to inject a rebellious, youthful energy came across as contrived, making it difficult for audiences to connect with the characters or take the story seriously.
The film also failed to offer a fresh perspective on the well-known Robin Hood narrative, instead recycling tropes and clichés that felt out of place in the medieval setting. Scholar Linda Seger points out that “successful adaptations must honor the spirit of the original while bringing something new to the table.” Unfortunately, Robin Hood struggled to find that balance, alienating both fans of the legend and general audiences alike. This misguided attempt to rebrand a classic story serves as a prime example of how flashy visuals cannot compensate for weak storytelling.
Keywords: Robin Hood 2018, style over substance, adaptation failure, weak plot
Baywatch tried to revive the iconic ’90s TV series by mixing comedy, action, and beachside charm, but the result was a movie that sank under the weight of juvenile humor and an incoherent plot. Starring Dwayne “The Rock” Johnson and Zac Efron, the film leaned heavily on raunchy jokes and slapstick moments, which alienated both fans of the original show and new audiences. The story, which revolves around lifeguards uncovering a criminal conspiracy, felt absurd even by comedic-action standards, making it hard for viewers to suspend disbelief.
Though Johnson and Efron brought charisma to their roles, their efforts were undermined by a poorly written script that failed to capitalize on the charm of the original series. The action sequences were neither thrilling nor inventive, and the humor often fell flat. As comedy scholar Noël Carroll explains, “Humor must align with the narrative to sustain engagement,” but Baywatch’s jokes felt disconnected from the story, making it a chore to watch. Ultimately, the film is an example of how not to adapt a nostalgic property, delivering neither memorable laughs nor compelling action.
These three films—Hot Pursuit, Robin Hood (2018), and Baywatch—demonstrate that even promising premises and star-studded casts can’t save a project weighed down by weak scripts and misguided direction. Each of these films struggled to find a coherent tone, leading to disjointed narratives that left audiences dissatisfied. Whether it’s a buddy-cop comedy, a reimagined legend, or an action comedy based on a beloved TV series, these titles reveal that balancing genres requires more than just ambition—it requires thoughtful execution.
These films also highlight the importance of knowing your audience. Attempting to modernize or reboot popular stories without honoring their original spirit can backfire, alienating fans while failing to attract new viewers. As these examples show, even talented actors and high production values cannot make up for poor storytelling. For filmmakers, these failures offer a critical lesson: nostalgia, star power, and spectacle mean little without a well-crafted narrative that resonates with viewers.
Jurassic World Dominion attempted to close out the trilogy on an epic note, but it quickly became a confusing mess of subplots and nostalgic callbacks. While audiences expected an action-packed showdown between humans and dinosaurs, much of the film’s runtime was dedicated to convoluted storylines about corporate espionage and genetically engineered insects. The dinosaurs, which should have been the stars, felt sidelined as the plot juggled too many elements. Critics noted that the film struggled to capture the suspenseful magic of the original Jurassic Park, with poorly developed characters and an overstuffed narrative diluting the excitement.
Even the return of fan-favorite characters like Dr. Ellie Sattler and Dr. Ian Malcolm couldn’t save the film from criticism. As media scholar Jason Mittell suggests, “Effective sequels balance fan service with original storytelling, offering something new while honoring the past.” Unfortunately, Dominion leaned too heavily on nostalgia without delivering a compelling new narrative. The result was a disappointing conclusion to a franchise that, once upon a time, redefined blockbuster cinema.
Cop Out tried to be a throwback to buddy-cop comedies of the past, but it missed the mark with uninspired jokes and disjointed storytelling. Directed by Kevin Smith, the film stars Bruce Willis and Tracy Morgan as mismatched partners chasing down a stolen baseball card. While the premise offers room for comedy and action, the film’s humor relies on overused clichés and awkward improvisation. Many scenes feel more like filler than meaningful plot progression, with punchlines that rarely land.
The movie also suffered from a lack of chemistry between Willis and Morgan, making their dynamic feel forced and inconsistent. As film critic Pauline Kael once noted, “Comedy thrives on rhythm, but a flat delivery can leave it lifeless.” Cop Out exemplifies this issue, failing to capture the fast-paced banter that defines great buddy-cop films. While it had moments of potential, the lack of narrative focus and comedic misfires ultimately turned it into a forgettable flop.
Men in Black: International tried to reboot the beloved sci-fi franchise with a new cast, but the attempt fell short of expectations. Starring Chris Hemsworth and Tessa Thompson, the film struggled with an uninspired plot revolving around a mole inside the Men in Black organization. Although the two leads shared chemistry, the lack of a strong script made their performances feel wasted. The film’s humor was inconsistent, and the action sequences lacked the creativity and charm that defined the original trilogy.
One of the film’s biggest flaws was its failure to expand the Men in Black universe in a meaningful way. As adaptation expert Linda Hutcheon argues, “New installments must justify their existence by offering new perspectives or expanding the narrative world.” Unfortunately, Men in Black: International merely rehashed familiar tropes without adding anything new, leaving viewers underwhelmed. The result was a reboot that felt unnecessary, diluting the franchise’s legacy instead of enhancing it.
Keywords: Men in Black reboot, uninspired plot, weak humor, wasted potential
Hashtags: #MIBFail #FranchiseFatigue #SciFiFlop
Conclusion
These three films—Jurassic World Dominion, Cop Out, and Men in Black: International—highlight the challenges of reviving popular franchises. Each of these movies struggled with balancing nostalgia, new elements, and engaging storytelling. Whether it’s sidelining iconic dinosaurs for confusing subplots, failing to recreate the magic of buddy-cop comedies, or rebooting a sci-fi series without meaningful innovation, these films demonstrate how franchises can falter when they rely too heavily on formulaic approaches.
The common thread among these flops is the lack of fresh ideas and poor execution. Audiences crave more than just familiar faces or recycled concepts—they want engaging stories that push boundaries while staying true to the franchise’s core appeal. These examples serve as reminders for filmmakers: no amount of special effects, star power, or brand recognition can compensate for a weak narrative. To stand out in today’s crowded entertainment landscape, storytelling remains the key ingredient.
Ava sought to deliver an intense, globe-trotting thriller starring Jessica Chastain as a ruthless assassin, but despite its promising premise, the film fell into familiar tropes. While Chastain’s performance showed flashes of brilliance, the underdeveloped plot and uninspired dialogue made it difficult for the film to maintain momentum. The movie tries to blend sleek action with family drama, but the emotional beats feel forced and disrupt the narrative flow. Audiences expecting a taut, stylish thriller were left disappointed by the film’s uneven pacing and cliched storytelling.
The lack of originality in Ava was particularly glaring, with many critics pointing out that it felt like a patchwork of better films in the genre. As genre critic Geoff King notes, “Action films thrive on either exceptional choreography or strong narrative stakes.” Ava offers neither, relying too much on familiar setups without delivering anything memorable. Despite a star-studded cast, including John Malkovich and Colin Farrell, the film struggled to stand out in a crowded genre.
Keywords: Ava movie flop, uninspired thriller, forced family drama, cliched storytelling
Vengeance aimed to tell a gritty story of justice and revenge, but the film’s dark tone and clunky execution ultimately worked against it. While vigilante justice can make for compelling cinema, Vengeance lacked the nuance needed to explore the moral complexities of its subject matter. The characters, including the vengeful policeman and the victimized mother, are thinly developed, making it difficult for viewers to connect with their motivations. The action sequences, although intense, felt repetitive, further weakening the film’s impact.
What Vengeance failed to grasp is that stories of revenge require emotional depth to resonate. As film theorist Robert McKee explains, “True suspense comes from emotional investment, not just violence.” This film misses that mark, focusing more on brutal action than on creating meaningful stakes for the characters. Without emotional nuance or fresh ideas, Vengeance fades into the background as yet another forgettable entry in the vigilante genre.
Street Fighter (1994) attempted to bring the popular video game to the big screen but quickly became a prime example of how not to adapt a beloved property. Starring Jean-Claude Van Damme as Colonel Guile, the film is notorious for its over-the-top performances, nonsensical plot, and campy dialogue. Although it tries to capture the spirit of the game with colorful characters, the incoherent story and cheesy special effects left audiences bewildered. The film’s tone is equally confusing, shifting between action, comedy, and drama without a clear sense of direction.
Adaptations of video games often face criticism for failing to do justice to their source material, and Street Fighter exemplifies this struggle. As critic Ian Bogost observes, “The challenge with video game adaptations lies in translating interactive experience into narrative coherence.” Street Fighter tries to squeeze a chaotic fighting game into a linear storyline, resulting in a messy and disjointed film that alienated both fans and general audiences. Despite its cult following, the movie is remembered more for its failures than for its achievements.
Keywords: Street Fighter movie, bad video game adaptation, cheesy dialogue, incoherent plot
These films—Ava, Vengeance, and Street Fighter—show how even ambitious action films can collapse under the weight of poor execution. Each of these movies struggled with fundamental storytelling issues, whether it was Ava’s forced emotional beats, Vengeance’s shallow exploration of justice, or Street Fighter’s chaotic adaptation. The common thread among these films is their inability to maintain narrative coherence, leaving audiences disconnected and dissatisfied.
These titles also highlight the challenge of balancing genre expectations with meaningful storytelling. Audiences are no longer satisfied with surface-level action or fan service—they want narratives with emotional depth, characters with clear motivations, and innovative storytelling. The failure of these films serves as a reminder that action films, no matter how spectacular, need more than explosions and fights to leave a lasting impression.
Keywords: action movie misfires, failed adaptations, narrative flaws, weak execution
Oldboy (2013) attempted to remake the critically acclaimed South Korean film of the same name, but it ultimately fell flat in capturing the original’s gripping intensity and emotional depth. Starring Josh Brolin as the protagonist seeking vengeance after being inexplicably imprisoned for two decades, the film fails to evoke the same level of psychological intrigue. While it tries to replicate the thrilling twists and turns of the original, the execution feels lackluster, and the character motivations remain shallow. Critics noted that the remake loses the raw emotional power that made the original a cinematic masterpiece, diluting its impact in the process.
The film’s visual style, while polished, cannot compensate for its lack of substance. As film scholar David Bordwell emphasizes, “A film’s aesthetic choices must serve the narrative rather than overshadow it.” Unfortunately, Oldboy prioritizes style over substance, resulting in a story that feels hollow and contrived. Instead of delivering the tension and emotional payoff that audiences expect from a revenge thriller, it meanders through predictable tropes, making it an uninspiring entry in the genre.
Bloodshot attempted to bring the comic book character to life, starring Vin Diesel as Ray Garrison, a soldier brought back to life with superpowers. Despite Diesel’s star power, the film was criticized for its generic plot and predictable storytelling. The narrative follows the familiar arc of revenge and redemption, but it lacks the originality and emotional resonance necessary to engage viewers. Critics pointed out that Bloodshot feels like a missed opportunity, as it fails to explore the character’s moral complexities or the implications of his resurrection, ultimately resulting in a forgettable experience.
Moreover, the film’s reliance on CGI and special effects often overshadowed character development. As film critic Mark Kermode observes, “Action films must find a balance between spectacle and substance to truly resonate.” In Bloodshot, the action sequences, while visually impressive, do little to enhance the story, leaving audiences disconnected from the characters and their motivations. The result is a film that fails to stand out in the crowded superhero genre, reinforcing the notion that even star-studded casts and high production values cannot save a weak narrative.
Keywords: Bloodshot movie flop, predictable storytelling, lack of originality, CGI overshadowing
Paradise City aimed to deliver a gritty crime thriller set against the backdrop of Hawaii, but it quickly fell into the trap of clichéd storytelling and uninspired character arcs. Starring John Travolta and Bruce Willis, the film follows Ryan Swan as he navigates the treacherous crime world to avenge his father’s murder. However, critics highlighted the film’s reliance on predictable tropes and formulaic plot points, which undermined any potential tension. The narrative felt disjointed, failing to create a coherent sense of urgency or stakes for the protagonist.
Moreover, Paradise City struggles to utilize its picturesque Hawaiian setting effectively. Instead of enhancing the narrative, the beautiful backdrop becomes a mere afterthought in a film that prioritizes shallow action over meaningful storytelling. As film scholar Linda Williams notes, “A film’s setting can enrich its narrative, but only if it’s woven into the story rather than merely serving as a backdrop.” In Paradise City, the stunning locale is wasted, resulting in a film that lacks the depth and engagement necessary to captivate audiences.
Keywords: Paradise City failure, clichéd storytelling, disjointed narrative, wasted setting
The films Oldboy, Bloodshot, and Paradise City illustrate how even the most promising concepts can unravel due to poor execution and clichéd storytelling. Each of these movies struggled with a lack of depth and originality, whether it was the failure to capture the emotional weight of revenge, the generic superhero narrative, or the missed opportunity to utilize a beautiful setting. Audiences are increasingly discerning, seeking films that offer more than just superficial action or star power.
These titles serve as a cautionary tale for filmmakers: no amount of spectacle or high-profile actors can compensate for weak storytelling. Engaging narratives, strong character development, and emotional stakes are essential ingredients for any successful action film. As these examples show, without these elements, films risk being relegated to the status of forgettable flops rather than becoming memorable contributions to the genre.
Keywords: action film failures, poor execution, clichéd narratives, storytelling importance
R.I.P.D. aimed to blend supernatural elements with buddy-cop humor, featuring Ryan Reynolds and Jeff Bridges as partners in an afterlife law enforcement agency. However, the film quickly devolved into a chaotic mix of predictable gags and a convoluted plot that failed to resonate with audiences. Critics panned the movie for its reliance on tired clichés and lack of coherent storytelling, leaving viewers scratching their heads rather than laughing. While the premise had the potential for humor and action, the execution fell flat, rendering it a forgettable entry in both the comedy and action genres.
The film’s attempt at a unique premise is undermined by its lack of character development and poor pacing. The chemistry between Reynolds and Bridges, while occasionally entertaining, cannot save the film from its narrative pitfalls. As screenwriting guru Syd Field emphasizes, “A strong screenplay is the backbone of any film; without it, even the best actors cannot breathe life into a project.” R.I.P.D. demonstrates this truth, as its failure to create engaging characters or a compelling plot leads to an overall disappointing experience.
Keywords: R.I.P.D. movie failure, predictable humor, convoluted plot, weak character development
Attack Force featured an elite U.S. military unit on a mission to stop a drug that turns people into violent killers, but it quickly succumbed to a slew of problems, from subpar acting to a disjointed script. Starring Steven Seagal, the film attempts to mix action and intrigue but falls short on both fronts. The action sequences lack the intensity and choreography that audiences expect from a military thriller, making them feel flat and unexciting. Critics noted that the film’s predictable plot and wooden performances rendered it a tedious watch rather than the pulse-pounding experience it aimed to deliver.
Moreover, Attack Force is marred by its failure to develop meaningful stakes or character arcs. The narrative becomes bogged down in clichés, leaving little room for emotional investment or suspense. As film scholar Thomas Schatz argues, “A successful action film must connect the audience to the characters, creating tension and stakes.” Unfortunately, Attack Force disregards this principle, resulting in a film that is easily forgettable in a genre saturated with more compelling options.
Keywords: Attack Force flop, predictable military thriller, subpar action sequences, lack of emotional stakes
Battleship sought to capitalize on the success of its board game namesake by bringing naval warfare and alien invasion to the big screen. However, the film ultimately fell short of expectations, with critics deeming it a misguided attempt at blending science fiction with action. While the special effects and battle sequences were visually impressive, the narrative was rife with clichés and poorly developed characters. The film struggled to establish a coherent plot, leading audiences to disengage from what should have been an exhilarating spectacle.
Despite its action-packed premise, Battleship lacked the depth and engagement necessary to captivate viewers. As critic Richard Roeper points out, “Action films that ignore character development and story can become mindless spectacles, losing the very audience they hope to entertain.” This holds true for Battleship, which often felt like a series of explosions and visual effects without meaningful context or emotional stakes. The result was a film that, despite its potential, faded into obscurity, overshadowed by more innovative entries in the action genre.
Keywords: Battleship movie flop, misguided adaptation, lack of character development, mindless spectacle
The films R.I.P.D., Attack Force, and Battleship exemplify how ambitious concepts can falter due to weak execution and a lack of engaging storytelling. Each of these movies struggled with predictable narratives, clichéd character arcs, and poor pacing, ultimately leaving audiences disappointed. Whether it’s the misstep of failing to blend humor and action in R.I.P.D., the uninspired military mission of Attack Force, or the chaotic spectacle of Battleship, these films demonstrate that star power and visual effects are insufficient without a solid narrative foundation.
As filmmakers continue to navigate the ever-changing landscape of action cinema, these titles serve as a reminder of the importance of character development, coherent storytelling, and emotional resonance. Audiences seek not just thrilling visuals, but meaningful experiences that connect them to the characters and stakes involved. The failures of these films highlight the essential truth that compelling narratives will always triumph over mere spectacle in the realm of action cinema.
Keywords: action movie failures, weak narratives, storytelling importance, cinematic lessons
Wonder Woman 1984 aimed to expand on the beloved superhero’s story but ultimately fell short of the high expectations set by its predecessor. Starring Gal Gadot as Diana Prince, the film attempts to balance a rich narrative with themes of love, loss, and greed, but the execution feels bloated and disjointed. Critics noted that the plot, centered around an ancient artifact that grants wishes, becomes overly convoluted, leading to a lack of clarity in character motivations and the stakes involved. The film’s pacing falters, with lengthy exposition detracting from the action that audiences craved, ultimately resulting in a lackluster superhero experience.
Moreover, the film’s villain, played by Pedro Pascal, is criticized for lacking depth and clear motivations, which diminishes the conflict’s overall impact. As screenwriter Linda Aronson points out, “A compelling antagonist is essential for driving a strong narrative.” Unfortunately, Wonder Woman 1984 struggles to deliver this, resulting in a film that feels more like a missed opportunity than a triumphant sequel. The absence of emotional resonance and engaging conflict ultimately left viewers disappointed, tarnishing the legacy of one of DC Comics’ most iconic characters.
Resident Evil: Welcome to Raccoon City sought to reboot the popular video game franchise with a return to its horror roots, but it stumbled in its execution. While it aimed to provide an origin story for the events leading to the outbreak, critics panned the film for its lack of originality and reliance on familiar tropes. The film fails to capture the essence of what made the original games compelling—an atmosphere of suspense and dread—resulting in a generic horror experience that feels more like a rehash than a fresh take.
The characters, while drawn from the game’s rich lore, are underdeveloped and lack the depth necessary to engage audiences. As film critic Brian Tallerico notes, “For horror to work, viewers must connect with the characters’ plight.” This connection is largely absent in Welcome to Raccoon City, leading to a series of predictable jump scares that fail to evoke genuine terror. The film’s missed opportunity to create a suspenseful and engaging narrative serves as a reminder that successful adaptations must capture the essence of their source material rather than simply recreating it.
Stop! Or My Mom Will Shoot is infamous for being one of Sylvester Stallone’s most criticized films, blending action and comedy in a way that many found lacking. The film’s premise—featuring a tough police sergeant whose overbearing mother meddles in his life—had potential for humor but ultimately felt forced and contrived. Critics have consistently pointed out that the comedic elements fail to land, resulting in a film that is awkward rather than funny. Stallone himself has been quoted saying this film was his worst work, highlighting the widespread consensus on its shortcomings.
The film’s failure lies not only in its execution but also in its failure to balance the action and comedy genres effectively. The jokes often fall flat, and the action sequences lack the intensity expected from a Stallone vehicle. As film scholar Peter Dendle asserts, “A successful comedy must have sharp writing and impeccable timing.” Stop! Or My Mom Will Shoot struggles with both, leading to a lack of engagement and a film that is more painful to watch than entertaining. Ultimately, this title stands as a testament to the importance of a well-crafted screenplay in blending genres effectively.
Keywords: Stop! Or My Mom Will Shoot flop, Stallone movie failure, forced comedy, lack of engagement
The films Wonder Woman 1984, Resident Evil: Welcome to Raccoon City, and Stop! Or My Mom Will Shoot illustrate the challenges of maintaining quality in franchises and genre-blending narratives. Each of these movies faced significant hurdles, whether through convoluted plots, underdeveloped characters, or an inability to balance humor and action. The collective disappointments highlight that even popular franchises and well-known actors cannot guarantee success if the storytelling is lacking.
As filmmakers continue to adapt beloved source materials and experiment with genre conventions, these examples serve as cautionary tales. Audiences crave more than just spectacle or star power; they seek meaningful stories with well-crafted characters and engaging plots. The failures of these films emphasize the importance of a strong narrative foundation, demonstrating that quality storytelling remains the cornerstone of successful cinema.
xXx: State of the Union* attempted to rejuvenate the action franchise by introducing a new lead, Darius Stone, portrayed by Ice Cube. Unfortunately, the film faltered in its efforts to replicate the explosive charm of its predecessor. While the premise of a covert operation in Washington, D.C. offers potential for political intrigue and high-stakes action, the execution ultimately fell flat. Critics pointed to a convoluted plot, subpar dialogue, and a reliance on clichés that diluted the film’s impact. Ice Cube’s performance, although energetic, couldn’t overcome a script that lacked depth and coherence, leading to a cinematic experience that was less thrilling and more tedious than intended.
Moreover, the film’s attempts to blend action with commentary on government corruption were perceived as half-hearted and superficial. As film analyst John C. McManus states, “A successful action film must also reflect on the socio-political landscape it inhabits.” In this case, xXx: State of the Union fails to provide a substantive commentary, leaving audiences with a forgettable entry that does little to expand on the franchise’s legacy. Instead of igniting excitement, it left viewers wanting more from a series that had potential to delve deeper into its themes.
Keywords: xXx: State of the Union failure, convoluted plot, lack of depth, superficial commentary
Doom sought to bring the iconic video game franchise to life but stumbled in its transition from pixels to the big screen. The film follows a group of Space Marines sent to a research facility on Mars, only to encounter genetically enhanced monsters. While the film promised high-octane action and suspense, it ultimately became mired in a lack of coherent storytelling and underwhelming character development. Critics lamented that, instead of delivering the intense horror and thrill that the game is known for, Doom relied too heavily on generic action tropes and predictable sequences, leaving fans of the franchise disappointed.
One of the film’s most criticized elements is its failure to capture the game’s essence. As film critic Keith Phipps notes, “An adaptation must honor the spirit of its source material while bringing something new to the table.” Unfortunately, Doom strays too far from what made the game a classic, leading to a disjointed narrative that fails to engage viewers. The lack of originality and depth in both the plot and characters resulted in a film that quickly faded into obscurity, serving as a reminder of the difficulties inherent in adapting beloved video games for cinema.
Keywords: Doom movie flop, video game adaptation failure, lack of coherent storytelling, underwhelming characters
Suicide Squad generated significant buzz leading up to its release, with an ensemble cast of beloved characters and a promising premise of antiheroes coming together for a high-stakes mission. However, the film was met with criticism for its disjointed storytelling and uneven tone. While it aimed to explore the complexities of villainous characters, it often fell back on familiar tropes, leading to a muddled narrative that left viewers scratching their heads. The film’s attempts at humor felt forced, and the motivations of key characters were poorly developed, contributing to a lack of emotional investment in their fates.
Furthermore, the execution of action sequences and special effects was uneven, with some moments feeling rushed or poorly choreographed. The film’s chaotic editing style also detracted from the overall experience, leaving audiences confused rather than entertained. Film critic Richard Lawson noted that “In a world of superhero films, it’s essential to differentiate your characters through meaningful arcs.” Suicide Squad struggled to achieve this, and as a result, it became emblematic of the challenges faced by ensemble superhero films. While it has its moments, the film ultimately failed to deliver on its ambitious promises, resulting in a mixed reception that tarnished its initial hype.
The films xXx: State of the Union, Doom, and Suicide Squad showcase the difficulties inherent in translating ambitious concepts into successful cinematic experiences. Each of these films faced significant hurdles, whether through convoluted plots, underdeveloped characters, or a lack of cohesive vision. Despite their potential, they ultimately delivered experiences that fell short of audience expectations, highlighting the importance of strong storytelling and character development in the action genre.
As the landscape of action cinema continues to evolve, these titles serve as cautionary tales for filmmakers. Audiences are no longer satisfied with mere spectacle; they seek stories that resonate emotionally and characters with whom they can connect. The failures of these films underline the critical need for well-crafted narratives, reminding us that action films must engage both the heart and mind to leave a lasting impression on viewers.
Jupiter Ascending aspired to create a rich and immersive science fiction universe, but its ambition far exceeded its execution. Starring Mila Kunis as Jupiter Jones, the film introduces a convoluted narrative involving intergalactic royalty and a battle for Earth’s future. Despite its grandiose visuals and a star-studded cast, including Channing Tatum and Eddie Redmayne, the film ultimately succumbed to its overstuffed plot and lack of character development. Critics were quick to point out that while the special effects dazzled, the screenplay faltered, resulting in a narrative that felt incoherent and confusing.
The film’s failure lies not only in its storytelling but also in its characters, who lacked depth and relatability. As screenwriter and critic John August notes, “A successful sci-fi film needs characters who resonate with the audience.” In Jupiter Ascending, the characters often felt like mere vessels for exposition rather than fully realized individuals, which detracted from the film’s emotional stakes. The ambitious premise of intergalactic conflict and destiny ultimately crumbled under the weight of its own complexity, leaving audiences frustrated rather than entertained.
Keywords: Jupiter Ascending failure, convoluted narrative, lack of character depth, incoherent storytelling
Simon Sez attempted to blend action and comedy with a unique premise featuring NBA star Dennis Rodman as an Interpol agent. Unfortunately, the film fell flat, failing to capitalize on its potential for humor and excitement. While the idea of an unconventional hero tackling an arms dealer’s nefarious plans could have provided a fresh take on the action genre, the execution lacked the wit and charm necessary to engage viewers. Critics lambasted the film for its weak script, poor pacing, and lack of coherent action sequences, ultimately deeming it a missed opportunity.
Moreover, Rodman’s performance, while charismatic, could not compensate for the film’s shortcomings. As film critic Scott Mendelson points out, “Star power can’t save a film from a weak script and lackluster direction.” Simon Sez exemplifies this sentiment, as the film’s inability to balance action and comedy left audiences disenchanted. Instead of delivering a memorable cinematic experience, it became a forgettable footnote in the careers of those involved, reinforcing the importance of strong storytelling and direction in action comedies.
Geostorm presents an intriguing premise—satellites controlling the global climate turning against humanity—but ultimately devolves into a formulaic disaster film. The film follows a scientist, played by Gerard Butler, racing against time to prevent a global catastrophe. While the idea of a climate crisis resonates with contemporary audiences, the execution falls into the realm of clichés and predictable plot twists. Critics were quick to note that despite its high-stakes setup, the film lacks tension and compelling character arcs, resulting in a lackluster experience.
Furthermore, Geostorm suffers from a reliance on special effects at the expense of cohesive storytelling. As critic James Berardinelli states, “Visual spectacle should complement the narrative, not replace it.” In this case, the film’s overreliance on visual effects failed to mask its deficiencies in character development and plot coherence. The characters felt one-dimensional, with motivations that lacked depth, leading to a film that felt more like a series of disconnected action sequences than a cohesive narrative. Ultimately, Geostorm serves as a cautionary tale for filmmakers: compelling stories and relatable characters are essential, even in the face of spectacular visuals.
Keywords: Geostorm failure, predictable plot, lack of tension, visual spectacle over narrative
The films Jupiter Ascending, Simon Sez, and Geostorm illustrate the challenges of delivering engaging narratives within the action and science fiction genres. Each of these titles struggled with convoluted plots, underdeveloped characters, and a reliance on visual effects over substance. Despite their intriguing premises, they ultimately left audiences feeling dissatisfied and unfulfilled, underscoring the importance of strong storytelling in crafting memorable cinematic experiences.
As filmmakers continue to navigate the complexities of genre expectations, these examples serve as reminders of the critical elements that contribute to a film’s success. Audiences today are not merely looking for spectacle; they crave well-constructed stories and characters they can connect with. The failures of these films emphasize that achieving balance between visual flair and narrative depth is essential for resonating with viewers and leaving a lasting impact in the crowded landscape of action cinema.
Keywords: narrative challenges, action film essentials, storytelling importance, audience satisfaction
Getaway attempts to deliver a high-octane thrill ride centered around Brent Magna, portrayed by Ethan Hawke, who finds himself in a race against time to save his kidnapped wife. The film’s premise hinges on a tense cat-and-mouse game driven by the commands of a mysterious antagonist, played by Jon Voight. However, despite its potential for suspense, the execution left much to be desired. Critics noted that the film suffered from a lack of character development and a thin plot, which resulted in a narrative that felt both contrived and formulaic. Instead of keeping viewers on the edge of their seats, Getaway often fell into a repetitive cycle of car chases that ultimately felt uninspired.
Moreover, the film’s reliance on rapid editing and shaky camera work detracted from its overall impact. As film scholar David Bordwell observes, “Effective action sequences require a balance between movement and clarity.” Unfortunately, Getaway failed to achieve this balance, leaving audiences disoriented rather than exhilarated. The film’s inability to forge an emotional connection with its characters further weakened its stakes, making it difficult for viewers to engage with Brent’s plight. Ultimately, Getaway serves as a reminder that even a compelling premise cannot save a film that neglects the fundamental aspects of storytelling and character engagement.
Keywords: Getaway failure, lack of character development, contrived plot, uninspired car chases
10,000 BC aims to transport audiences to a prehistoric era, chronicling the journey of D’Leh, a mammoth hunter, as he embarks on an odyssey to rescue his beloved Evolet from captivity. Despite its grand ambitions and visually stunning landscapes, the film ultimately falters due to its underdeveloped characters and simplistic storytelling. Critics lambasted the film for its reliance on clichés, resulting in a narrative that feels both predictable and shallow. While the backdrop of ancient civilizations and mammoth hunts presents intriguing possibilities, the execution lacks the depth required to engage viewers meaningfully.
Moreover, the film’s portrayal of prehistoric life, while visually captivating, often veers into the realm of the fantastical without grounding its characters in relatable motivations. As anthropologist Brian Fagan notes, “Historical narratives must resonate with universal human experiences to engage audiences.” In this regard, 10,000 BC struggles to create a relatable connection with its audience, leaving them more captivated by visuals than by the story unfolding onscreen. Ultimately, while it offers stunning imagery, 10,000 BC serves as a reminder that spectacle alone cannot substitute for a strong narrative and character development in crafting a compelling cinematic experience.
Keywords: 10,000 BC failure, underdeveloped characters, simplistic storytelling, predictable narrative
Max Payne, based on the popular video game series, follows a police detective as he delves into a series of murders tied to a shadowy conspiracy involving the mob and a ruthless corporation. Despite the film’s potential for a gripping noir thriller, it falls victim to a convoluted plot and a disjointed narrative structure. Critics highlighted the film’s inability to effectively translate the gripping storytelling and atmospheric tone of the video game into a compelling cinematic experience. As a result, audiences were left with a product that felt like a hollow representation of its source material rather than a thoughtful adaptation.
Additionally, the film’s pacing suffers as it struggles to balance action sequences with character development. While Mark Wahlberg’s portrayal of Max Payne adds a layer of intensity, the lack of depth in supporting characters and a fragmented storyline ultimately undermine his performance. As film critic Roberta McMillan states, “A film must provide a coherent narrative to allow its characters to resonate.” In this case, Max Payne falters, leading to a disjointed experience that fails to captivate its audience. The film stands as a reminder that adapting beloved properties requires not only respect for the source material but also a strong grasp of storytelling fundamentals to resonate with both fans and newcomers alike.
Keywords: Max Payne failure, convoluted plot, disjointed narrative, weak character development
The films Getaway, 10,000 BC, and Max Payne illustrate the critical pitfalls that can arise in action and adventure cinema when storytelling and character development are neglected. Each of these films showcases ambitious premises that ultimately fell flat due to underdeveloped narratives and characters that failed to resonate with audiences. As they attempted to balance action and spectacle, they lost sight of the essential elements that make a film engaging and memorable.
These examples serve as important lessons for filmmakers in understanding the value of cohesive storytelling, character depth, and emotional connection in creating successful action films. While visual spectacle can captivate, it is the underlying narrative and character arcs that truly hold the audience’s attention. The failures of these titles remind us that achieving a harmonious balance between action and storytelling is crucial for crafting cinematic experiences that leave a lasting impact on viewers.
Keywords: storytelling pitfalls, character development importance, engaging narratives, lessons for filmmakers
Abduction seeks to create a gripping thriller centered around a young man, played by Taylor Lautner, who discovers his baby photo on a missing persons website. This revelation triggers a frantic quest for identity and truth, as he unravels a mystery that threatens not only his life but also the lives of those around him. However, despite its intriguing premise, the film fails to deliver a cohesive narrative. Critics noted that while the concept had potential for suspense and intrigue, the execution felt lackluster, with a plot that often meandered and lacked logical progression.
The film’s reliance on action sequences over character development detracted from the emotional stakes of the story. As screenwriter and filmmaker Shane Black has pointed out, “Characters need to feel real and relatable for the audience to invest in their journey.” In Abduction, the characters often come across as one-dimensional, with motivations that feel contrived and uninspired. This lack of depth undermines the film’s ability to engage viewers, ultimately leading to a missed opportunity for a compelling thriller. Abduction exemplifies the critical need for a strong narrative foundation to elevate a film beyond a mere action spectacle.
Force of Nature attempts to fuse action with a disaster film by setting a heist during a hurricane. The film centers on a gang of thieves who encounter unexpected resistance when a determined cop tries to evacuate everyone from the building. While the premise promises an exciting blend of tension and thrills, the film ultimately falters due to poor execution and a lack of coherence. Critics have pointed out that the film’s pacing is uneven, often stalling during moments that should be filled with adrenaline, leading to a disjointed viewing experience.
Moreover, the film’s characterization leaves much to be desired. The thieves and the cop lack depth, making it challenging for the audience to invest in their fates. As noted by critic Richard Roeper, “If you don’t care about the characters, the stakes feel meaningless.” This sentiment rings true for Force of Nature, where the action sequences fail to elicit the intended thrills due to a lack of emotional engagement. Ultimately, the film serves as a cautionary tale for filmmakers: blending genres requires not just an interesting concept, but also the ability to develop characters and tension in a meaningful way.
Keywords: Force of Nature failure, uneven pacing, lack of character depth, genre blending issues
Extraction follows a former CIA operative whose son embarks on a dangerous rescue mission after learning that his father has been kidnapped by terrorists. The film attempts to deliver a heart-pounding action experience filled with intense sequences and high stakes. However, despite its thrilling premise and a strong performance by Chris Hemsworth, the film often struggles with narrative clarity and emotional depth. Critics have pointed out that while the action is well-executed, the plot tends to rely on familiar tropes without offering new insights or developments.
Additionally, the film’s focus on action comes at the expense of character development, leaving audiences with archetypal figures rather than fully fleshed-out individuals. As filmmaker Martin Scorsese suggests, “The characters must be engaging for the film to resonate.” In Extraction, the emotional connection between the father and son, while central to the narrative, is insufficiently developed to create lasting impact. The film ultimately highlights the challenge of balancing thrilling action with meaningful storytelling, as it risks becoming just another entry in the crowded action genre without leaving a significant mark on its audience.
Keywords: Extraction challenges, lack of narrative clarity, emotional depth issues, action tropes
The films Abduction, Force of Nature, and Extraction each showcase the pitfalls that can arise when engaging narratives and character depth are sacrificed for action sequences. Despite promising premises, these films fell short in delivering the emotional resonance and clarity necessary to engage audiences fully. The disjointed plots and one-dimensional characters in each title served to detract from the intended thrills, ultimately leaving viewers feeling unsatisfied.
These examples highlight the essential balance filmmakers must strike between action and storytelling. While adrenaline-pumping sequences can be captivating, they must be rooted in compelling narratives and relatable characters to create a lasting impact. The failures of these films serve as a reminder that audiences crave depth and connection, making strong storytelling a crucial component in the success of any action film.
Keywords: pitfalls of action cinema, storytelling and action balance, audience engagement challenges, emotional resonance importance
Justice League brings together a dynamic ensemble of superheroes, aiming to form a united front against a formidable adversary threatening Earth. Fueled by the hope inspired by Superman’s sacrifice, Bruce Wayne, played by Ben Affleck, and Diana Prince, portrayed by Gal Gadot, gather a team of extraordinary individuals. While the film presents an ambitious vision of DC’s superhero universe, it ultimately disappoints due to its convoluted plot and uneven pacing. Critics have pointed out that despite its star-studded cast and iconic characters, the film often feels disjointed, resulting in a lack of emotional investment from the audience.
Furthermore, the film struggles with character development, leaving many heroes feeling underexplored and their motivations unclear. As filmmaker Joss Whedon noted, “The heart of any team story is the emotional connection between the characters.” Unfortunately, Justice League falls short in this regard, as the film often prioritizes action set pieces over meaningful character interactions. The result is a spectacle that fails to resonate, ultimately reinforcing the notion that even the mightiest heroes can falter without a strong narrative foundation to ground their actions. Justice League serves as a cautionary tale about the dangers of rushing into a cinematic universe without fully developing the stories and relationships that will define it.
Keywords: Justice League disappointment, convoluted plot, uneven pacing, lack of character development
Blacklight features government operative Travis Block, who confronts the ghosts of his past while unraveling a conspiracy that threatens the safety of U.S. citizens. The film aims to blend action and political intrigue, but it ultimately falls flat due to a predictable storyline and clichéd characters. Critics have pointed out that while the premise holds potential, the execution lacks the necessary depth and originality to engage viewers meaningfully. Instead of offering fresh insights into the world of espionage, Blacklight relies on familiar tropes that fail to elevate the narrative.
Additionally, the film’s pacing suffers, with action sequences that feel forced rather than organically integrated into the storyline. As film critic James Berardinelli suggests, “When action sequences become the main focus without serving the story, the film loses its narrative integrity.” In Blacklight, this disconnection is palpable, leading to a viewing experience that feels disjointed and lacks emotional impact. Ultimately, Blacklight exemplifies the challenges faced by films in the action genre, emphasizing the importance of coherent storytelling and character arcs to achieve a truly engaging cinematic experience.
Gods of Egypt attempts to bring to life the rich mythology of ancient Egypt, centering on a mortal hero, Bek, who partners with the god Horus in a battle against the dark god Set. While the film showcases visually stunning special effects and ambitious world-building, it ultimately falters due to a convoluted plot and lack of character development. Critics have noted that despite the film’s lavish production values, the story often gets lost in its own complexity, leading to confusion rather than engagement.
Moreover, the characters in Gods of Egypt often come across as archetypal rather than fully realized individuals, which diminishes the emotional stakes of the narrative. As film scholar David A. Greenberg points out, “Characters must evoke empathy for their struggles to create a resonant narrative.” In this case, Bek and Horus struggle to engage viewers on an emotional level, as their motivations often feel contrived and unconvincing. The film serves as a reminder that, even with stunning visuals, a compelling story and well-developed characters are essential for capturing an audience’s attention in the realm of fantasy cinema.
Keywords: Gods of Egypt failure, convoluted plot, lack of character development, emotional stakes issues
The films Justice League, Blacklight, and Gods of Egypt exemplify the pitfalls that can occur when ambitious concepts are not matched by strong storytelling and character development. Each of these films, despite their grand aspirations and visual spectacle, ultimately faltered due to convoluted plots and shallow characterizations. The result is a viewing experience that fails to engage audiences on a deeper level, highlighting the importance of narrative coherence and emotional connection in cinema.
These examples serve as critical reminders for filmmakers about the necessity of balancing spectacle with substance. While visually captivating elements can draw viewers in, it is the strength of the narrative and the relatability of characters that sustain their interest. The shortcomings of these titles underscore the need for thoughtful storytelling in creating films that resonate, ensuring that even the most ambitious projects do not lose sight of what truly captivates audiences.
Keywords: cinematic pitfalls, storytelling and character development importance, narrative coherence necessity, emotional connection in film
The Mummy attempts to reboot the classic monster franchise with a contemporary twist, centering on an ancient Egyptian princess who rises from her crypt, unleashing chaos upon the modern world. Despite its star power, including Tom Cruise, the film quickly became infamous for its critical reception, culminating in eight nominations at the Golden Raspberry Awards, ultimately winning the dubious honor of Worst Actor. Critics pointed to a convoluted plot and uninspired writing as primary culprits in its failure, indicating that even big-budget spectacles can falter without a coherent narrative.
Furthermore, the film’s attempt to weave a shared universe—an ambitious goal for many modern franchises—backfired, leaving audiences bewildered rather than excited. Scholar and film critic Leonard Maltin states, “A good franchise needs a strong foundation; without it, the entire structure is at risk.” The Mummy exemplifies this struggle, as the lack of engaging characters and a compelling storyline ultimately detracts from the film’s potential. Despite its high-stakes action sequences and impressive special effects, The Mummy serves as a cautionary tale about the importance of storytelling in resurrecting beloved franchises, illustrating that even the most promising concepts can crumble under poor execution.
Keywords: The Mummy failure, critical reception, convoluted plot, franchise struggles
Speed Kills presents the life of Ben Aronoff, a speedboat racing champion who leads a double life rife with legal troubles and entanglements with drug lords. Despite its action-packed premise and the allure of the racing world, the film was met with widespread criticism for its lack of narrative coherence and engaging character development. Critics noted that while the film aims to capture the adrenaline of the racing scene, it often feels disjointed and lacks a compelling emotional core.
Additionally, the film’s treatment of its themes—wealth, danger, and the fast-paced lifestyle—comes off as superficial, failing to delve into the deeper implications of its protagonist’s choices. As film scholar Andrew Sarris noted, “A film’s emotional weight is often tied to the protagonist’s journey and transformation.” In Speed Kills, however, Aronoff’s character remains largely one-dimensional, preventing audiences from investing in his story. This lack of depth and emotional resonance ultimately undermines the film’s impact, revealing the challenge of balancing thrilling visuals with substantive storytelling in the action genre.
Ghost Rider: Spirit of Vengeance follows Johnny Blaze as he grapples with the curse of being the Ghost Rider while embarking on a mission to protect the Devil’s son from his own father. This sequel attempts to build upon the original film’s foundation but ultimately stumbles due to a muddled plot and uninspired execution. Critics have pointed out that despite the film’s potential for excitement and drama, it often devolves into a series of clichéd action sequences that fail to elevate the narrative.
The film also struggles with character development, leaving Blaze and the supporting cast feeling underexplored and lacking depth. According to film theorist David Bordwell, “A film’s success hinges on its ability to create complex characters with relatable motivations.” In Spirit of Vengeance, the absence of compelling character arcs diminishes the stakes of the narrative, resulting in a viewing experience that lacks the emotional engagement necessary to resonate with audiences. Ultimately, Ghost Rider: Spirit of Vengeance serves as a reminder that even the most visually striking action films require a strong story and well-developed characters to truly captivate viewers.
Keywords: Ghost Rider failure, muddled plot, lack of character depth, clichéd action sequences
The films The Mummy, Speed Kills, and Ghost Rider: Spirit of Vengeance demonstrate the critical importance of cohesive storytelling and character development in the action genre. Each film, despite ambitious premises and the potential for captivating narratives, ultimately falls short due to convoluted plots and shallow characterizations. The result is a viewing experience that fails to engage audiences and highlights the pitfalls of neglecting the foundational elements of storytelling.
These examples remind filmmakers that the allure of high-octane action and special effects cannot substitute for a well-crafted narrative. Audiences crave emotional investment and relatable characters, making it essential for filmmakers to balance thrilling visuals with substantive storytelling. The failures of these films reinforce the notion that even the most visually striking projects can falter without the backbone of a strong narrative and engaging characters to support them.
Keywords: cohesive storytelling importance, character development necessity, narrative pitfalls in action films, emotional investment in cinema
In Transformers: The Last Knight, the stakes escalate as a historic threat re-emerges, prompting a frantic search for a lost artifact amidst the ongoing battle between Autobots and Decepticons. Despite the franchise’s previous successes, this installment was met with a tepid response from both critics and audiences, who cited its convoluted narrative and overreliance on CGI effects as significant shortcomings. Many reviews remarked that the film feels disjointed, struggling to balance its ambitious scope with coherent storytelling.
Moreover, the character arcs and motivations within the film are often overlooked, leading to a lack of emotional engagement. Scholar and film critic Roger Ebert once noted, “A film’s emotional core is its lifeblood,” a sentiment that Transformers: The Last Knight seems to ignore. Instead, viewers are bombarded with explosive action sequences that, while visually impressive, do little to advance character development or plot. The disconnection between spectacle and storytelling ultimately reduces the film to a series of flashy set pieces rather than a compelling narrative, highlighting the critical importance of balancing action with character depth in franchise filmmaking.
Keywords: Transformers Last Knight flaws, convoluted narrative, lack of character development, spectacle over substance
Speed 2: Cruise Control attempts to ride the coattails of its predecessor’s success but ultimately misses the mark in nearly every aspect. This sequel shifts the action from a bus to a cruise ship, introducing a computer hacker who sends the Seabourn Legend on a collision course with an oil tanker. However, critics widely panned the film for its lack of originality and engaging plot. The change in setting from land to sea, rather than enhancing the tension, instead renders the stakes feel muted and uninteresting.
Additionally, the film suffers from a lack of chemistry between the leads, which detracts from the audience’s investment in their plight. Film scholar Linda Williams argues, “The success of action films often hinges on the dynamics between characters, as much as the action itself.” Unfortunately, Speed 2 fails to deliver on this front, leaving audiences feeling detached from the characters and their predicament. As a result, what could have been a thrilling ride devolves into a tedious experience, illustrating the necessity of strong character relationships to elevate action sequences and maintain audience interest.
Keywords: Speed 2 shortcomings, lack of originality, muted stakes, character chemistry
In A Good Day to Die Hard, the iconic action hero John McClane travels to Russia to assist his estranged son, only to uncover that his son is entangled in a high-stakes CIA mission. This film, the fifth in the Die Hard series, was met with disappointment from both fans and critics, who lamented its departure from the original’s sharp wit and relatable character-driven narrative. Instead of a clever plot laden with tension and humor, this installment is criticized for its lack of coherence and reliance on formulaic action tropes.
The film’s attempt to create a father-son dynamic, while promising, ultimately feels underdeveloped and lacks the emotional weight necessary to resonate with audiences. Renowned film critic Peter Travers remarked, “The heart of a film often lies in its character relationships, which can transform mere action into a compelling narrative.” Unfortunately, A Good Day to Die Hard struggles to establish this emotional core, leaving viewers disconnected from both McClane and his son. The film serves as a reminder that legacy franchises must honor their roots, balancing thrilling action with authentic character development to avoid falling flat in the eyes of their devoted audience.
Keywords: A Good Day to Die Hard failure, character-driven narrative, father-son dynamic, legacy franchise challenges
The films Transformers: The Last Knight, Speed 2: Cruise Control, and A Good Day to Die Hard exemplify the precarious balance required in action filmmaking. Each of these sequels demonstrates a failure to maintain engaging narratives and relatable characters, leading to disappointment among audiences and critics alike. The reliance on spectacle over substance, as well as the lack of emotional depth, underscores the critical importance of storytelling in the action genre.
These examples serve as cautionary tales for filmmakers and studios alike, reminding them that audiences yearn for more than just visual thrills; they crave connection and investment in the characters’ journeys. Without this balance, even the most visually stunning films risk falling into obscurity, overshadowed by their own shortcomings. The failures of these sequels highlight that a strong narrative foundation is essential for the long-term success of any action franchise, ensuring it resonates with viewers and earns its place in cinematic history.
In The Expendables 4, audiences are treated to an over-the-top spectacle of action and nostalgia as an ensemble of seasoned action stars returns to save the world once again. However, despite the star-studded cast and explosive marketing, the film has been criticized for its predictable plot and formulaic execution. Critics argue that the series, which initially garnered attention for its homage to classic action films, has lost its edge, settling into a repetitive cycle that fails to captivate new audiences while alienating longtime fans. The once-celebrated camaraderie of the characters now feels stale and uninspired, diminishing the excitement that the franchise sought to deliver.
Moreover, the film’s reliance on extravagant action sequences without a coherent storyline raises questions about the balance between spectacle and substance. Film theorist Thomas Schatz suggests, “The allure of action films lies not just in their visual prowess but in the narrative threads that engage the audience.” Unfortunately, The Expendables 4 seems to disregard this principle, offering up a series of disconnected action set pieces that fail to engage viewers emotionally. As a result, the film serves as a reminder that even a collection of legendary action heroes cannot save a lackluster narrative from sinking under its own weight.
Keywords: The Expendables 4 critique, predictable plot, action nostalgia, spectacle vs. substance
After Earth, directed by M. Night Shyamalan and starring Will Smith alongside his son Jaden, was marketed as a groundbreaking sci-fi adventure. However, it was widely panned for its lack of originality and depth, leading Smith to label it “the most painful failure in his career.” The film’s narrative centers around a father-son duo stranded on a post-apocalyptic Earth, yet the execution leaves much to be desired, with critics citing its lack of engaging character development and a compelling story arc. The ambitious premise quickly crumbles under the weight of its uninspired dialogue and clichéd plot devices, making it difficult for viewers to connect with the characters or invest in their survival.
The film’s failure to resonate with audiences highlights the importance of balancing star power with a strong narrative foundation. As film critic Scott Foundas notes, “Star presence cannot compensate for a weak script.” Unfortunately, After Earth falls victim to this trap, revealing that even a well-known cast cannot salvage a poorly crafted film. The film’s reception serves as a cautionary tale for filmmakers seeking to blend family dynamics with high-concept narratives, emphasizing that substance should never be sacrificed in favor of star appeal.
Keywords: After Earth failure, Will Smith career, weak narrative, family dynamics in film
Morbius attempts to capitalize on the popularity of superhero films, introducing audiences to the tragic origin of a biochemist turned vampire. However, the film quickly fell flat at the box office, earning it five nominations at the Golden Raspberry Awards, including Worst Picture. Critics were quick to point out the film’s muddled narrative and lackluster performances, particularly highlighting Jared Leto’s portrayal of the titular character as a significant misstep. The film’s attempts to blend horror and superhero elements ultimately fell short, failing to establish a coherent tone or engaging storyline, which left audiences disappointed and confused.
Moreover, Morbius serves as a stark reminder of the dangers of rushed productions and hasty franchise expansions in the superhero genre. As screenwriter and director Kevin Smith asserts, “You can’t just throw a character into a movie and expect audiences to embrace them without a compelling narrative.” The misalignment of ambition and execution in Morbius exemplifies how a lack of foundational storytelling can doom a project to failure, reinforcing the notion that superhero films must prioritize character depth and narrative coherence to truly resonate with audiences.
Keywords: Morbius box office failure, superhero film critique, narrative coherence, Jared Leto performance
The films The Expendables 4, After Earth, and Morbius illustrate the myriad pitfalls that can plague action and superhero narratives. Each of these films exemplifies how a lack of originality, depth, and coherence can lead to disappointing results, leaving both audiences and critics disenchanted. Whether through predictable plots, unengaging character dynamics, or muddled narratives, these films serve as cautionary tales for filmmakers in an industry increasingly driven by franchise potential and star power.
Ultimately, the failures of these films underscore the critical importance of storytelling in the action and superhero genres. Filmmakers must remember that while flashy visuals and star-studded casts may draw audiences in, it is the emotional connection and engaging narratives that keep them coming back for more. Without this foundation, even the most anticipated films risk falling into the void of cinematic obscurity, reminding us all that substance must always accompany style in the world of film.
Keywords: action film pitfalls, narrative importance in film, engaging storytelling, film industry challenges
In Hard Kill, Bruce Willis stars as Donovan Chalmers, a billionaire tech CEO whose groundbreaking work attracts the attention of mercenaries and terrorists alike. However, despite its intriguing premise, the film struggles to deliver a compelling narrative. Critics have noted that Hard Kill feels like a paint-by-numbers action movie, failing to innovate or bring anything new to the table. Instead of thrilling sequences and engaging characters, audiences are met with a predictable plot and lackluster dialogue that undermine the film’s potential. The action sequences often appear disconnected from the storyline, leaving viewers disoriented and disengaged.
Moreover, Hard Kill highlights a troubling trend in action films: the reliance on star power alone to carry a project. As entertainment industry analyst David Edelstein aptly puts it, “A marquee name can’t save a script that isn’t worthy.” The film’s failure to resonate with audiences is a testament to the importance of solid storytelling and character development, elements that are too often overlooked in favor of big names and explosive set pieces. As a result, Hard Kill becomes just another example of how even seasoned actors can falter in projects that prioritize style over substance.
Keywords: Hard Kill critique, Bruce Willis action film, predictable plot, storytelling in action movies
Hashtags: #HardKill #BruceWillis #ActionMovieFail
59 – Fantastic Four
The 2015 iteration of Fantastic Four aimed to reboot the beloved superhero franchise, but instead ended up as one of the most notorious flops in recent cinematic history. Critics lambasted the film for its convoluted plot and lack of character development, resulting in a narrative that felt rushed and disjointed. The movie was marred by production issues, including reported conflicts between the director Josh Trank and the studio, which ultimately hindered its ability to resonate with audiences. Many viewers found themselves confused by the characters’ motivations and the film’s tone, leading to a disappointing viewing experience that did not live up to the legacy of its comic book origins.
The fallout from Fantastic Four serves as a cautionary tale for filmmakers navigating the complex world of superhero adaptations. As scholar Anne K. Mellor observes, “The challenge lies not only in the translation of comic book narratives to the screen but also in the necessity of creating engaging, relatable characters.” The film’s failure to accomplish this critical balance resulted in it winning several Golden Raspberry Awards, including Worst Picture and Worst Director. This misstep underscores the necessity of thoughtful storytelling and character arcs in the superhero genre, which must engage viewers on an emotional level to avoid becoming mere spectacles.
Keywords: Fantastic Four 2015 failure, superhero film critique, Josh Trank, character development in film
Battlefield Earth, adapted from L. Ron Hubbard’s novel, stands as a prime example of a film so poorly executed that it has earned a notorious reputation in cinematic history. Set in the year 3000 A.D., the film’s premise of a planet enslaved by alien overlords had the potential for a thrilling narrative. However, the execution fell flat, earning it a staggering eight Golden Raspberry Awards, including Worst Picture and Worst Actor for John Travolta. Critics have consistently pointed to its nonsensical plot and cringeworthy dialogue as major contributing factors to its failure, making it a staple on lists of the worst films ever made.
Despite its attempts at social commentary on oppression and resilience, Battlefield Earth suffers from an overblown ambition that it fails to fulfill. Film scholar Michael C. Oren aptly summarizes this phenomenon: “A film’s success lies in its ability to engage its audience, not just in its grand ideas.” The disconnection between its lofty themes and poor execution ultimately led to a collective groan from both audiences and critics alike. Battlefield Earth serves as a sobering reminder that grand visions must be paired with competent storytelling and direction to avoid becoming cautionary tales in the annals of film history.
Keywords: Battlefield Earth critique, John Travolta, film failure, cinematic cautionary tale
As we explore the final three films in our examination of action movie flops, Hard Kill, Fantastic Four, and Battlefield Earth remind us that the pitfalls of the genre often stem from a fundamental disconnect between ambition and execution. Each of these films failed to resonate with audiences, largely due to their lackluster narratives and unconvincing character arcs. Rather than engaging viewers, these films left them scratching their heads, questioning the decisions that led to their creation.
The lessons learned from these cinematic misfires highlight the importance of prioritizing storytelling and character development in action films. Filmmakers must remember that a captivating narrative is essential for engaging audiences, regardless of star power or high-concept premises. In an era where audiences are increasingly discerning, the risks associated with neglecting these elements can lead to disappointing results, reminding us all that the heart of cinema lies in the stories we tell.
Keywords: action movie lessons, storytelling importance, cinematic success, audience engagement
In the realm of action cinema, the films we’ve examined throughout this blog post represent the many ways even the most promising concepts can falter. From The Last Witch Hunter to Battlefield Earth, these movies suffered not only from poor execution but also from a failure to connect with audiences on both narrative and emotional levels. Each entry on our list highlights a common pitfall in the action genre: the tendency to prioritize spectacle over substance, resulting in lackluster experiences that fail to engage viewers.
Moreover, these cinematic misfires serve as a critical reminder of the importance of thoughtful storytelling and character development. Audiences today crave narratives that resonate and characters they can root for, regardless of the explosions and high-stakes drama unfolding on screen. As we’ve seen in films like Fantastic Four and Morbius, a star-studded cast or an intriguing premise is not enough to ensure success. Instead, filmmakers must strive for a balance that honors the genre’s roots while innovating to meet contemporary expectations. Ultimately, the exploration of these 60 action movie flops underscores the notion that great storytelling is at the heart of all successful cinema, regardless of genre.
Keywords: action cinema lessons, storytelling importance, audience engagement, film success
Bordwell, David, and Kristin Thompson.Film Art: An Introduction. McGraw-Hill Education, 2016. This comprehensive textbook provides insights into the various aspects of filmmaking, including narrative structure, cinematography, and editing, which are crucial for understanding what makes action movies succeed or fail.
Bordwell, David.Making Meaning: Inference and Rhetoric in the Interpretation of Cinema. Harvard University Press, 1989. This book delves into the importance of narrative in film, offering a framework for understanding how audiences derive meaning from cinematic experiences, particularly relevant to action films.
Neale, Steve.Genre and Contemporary Hollywood. British Film Institute, 2002. Neale explores genre conventions and how they shape audience expectations, making it essential reading for those looking to understand the action genre’s evolution and the common pitfalls filmmakers encounter.
Stam, Robert, and Toby Miller.Film and Theory: An Anthology. Blackwell Publishing, 2000. This anthology includes various essays that examine film theory, including discussions on genre, representation, and the cultural implications of film, which can provide context for analyzing failed action movies.
Edelstein, David. “The Fault in Our Stars: Why Some Movies Fail.” New York Magazine, 2015. This article discusses the reasons behind cinematic failures and how even star-studded casts can falter without solid storytelling, providing a contemporary perspective relevant to recent action films.
Cohen, Arthur.The Action Movie A-Z: The Ultimate Guide to Action Films. Da Capo Press, 2001. This reference book lists and critiques notable action films, offering insights into both successful and unsuccessful entries within the genre.
Mendelsohn, Daniel. “The Unbearable Lightness of ‘Fantastic Four.’” The New Yorker, 2015. A critical review of the Fantastic Four reboot that discusses the film’s shortcomings and serves as a case study for understanding the challenges of adapting beloved comic characters to the screen.
Kermode, Mark.The Good, The Bad and The Multiplex: What’s Wrong with Modern Movies? Knopf, 2013. Kermode critiques contemporary cinema, including action films, addressing the impact of blockbuster culture and audience expectations on filmmaking quality.
Tzioumakis, John, and Greg M. Smith.The American Action Film: A Critical History. Cambridge Scholars Publishing, 2009. This book offers a critical history of the American action film, analyzing the genre’s development and discussing various films that have defined its boundaries, including both successful and unsuccessful entries.
Cohen, Eric.The Encyclopedia of Action Films. Rowman & Littlefield, 2014. This encyclopedia provides detailed entries on action films, directors, and stars, serving as a valuable resource for anyone looking to understand the genre’s trends and failures.
Affiliate Disclosure: This blog may contain affiliate links, which means I may earn a small commission if you click on the link and make a purchase. This comes at no additional cost to you. I only recommend products or services that I believe will add value to my readers. Your support helps keep this blog running and allows me to continue providing you with quality content. Thank you for your support!
The source material presents a comprehensive guide to using the Pandas library in Python. It covers fundamental concepts like importing data from various file formats (CSV, text, JSON, Excel) into dataframes. The video provides instruction on cleaning, filtering, sorting, and indexing data. Also, it highlights the group by function, merging dataframes, and creating visualizations. The guide also teaches how to conduct exploratory data analysis, identifying patterns and outliers within a dataset.
Pandas Data Manipulation: A Comprehensive Study Guide
I. Quiz
Answer the following questions in 2-3 sentences each.
What is a Pandas DataFrame, and why is the index important?
Explain how to read a CSV file into a Pandas DataFrame, including handling potential Unicode errors.
Describe how to read a text file into a Pandas DataFrame using read_table and specify a separator.
How can you specify column names when reading a CSV file if the file doesn’t have headers?
Explain how to filter a Pandas DataFrame based on values in a specific column.
Describe the difference between loc and iloc when filtering data in a Pandas DataFrame using the index.
Explain how to sort a Pandas DataFrame by multiple columns, specifying the sorting order for each.
How do you create a MultiIndex in a Pandas DataFrame, and how does it affect data access?
Describe how to group data in a Pandas DataFrame using the groupby function and calculate the mean of each group.
Explain the different types of joins available in Pandas, including inner, outer, left, and right joins.
II. Answer Key
A Pandas DataFrame is a two-dimensional labeled data structure with columns of potentially different types. The index is crucial because it provides a way to access, filter, and search data within the DataFrame, acting as a label for each row.
To read a CSV file, use pd.read_csv(‘file_path’). To handle Unicode errors, prepend the file path with r (e.g., pd.read_csv(r’file_path’)) to read the path as a raw string, preventing misinterpretation of backslashes.
Use pd.read_table(‘file_path’, sep=’delimiter’) to read a text file into a DataFrame. The sep argument specifies the separator between columns in the text file (e.g., sep=’t’ for tab-separated).
To specify column names when a CSV lacks headers, use pd.read_csv(‘file_path’, header=None, names=[‘col1’, ‘col2’, …]). This sets header=None to prevent Pandas from using the first row as headers and then assigns names using the names parameter.
To filter by column values, use boolean indexing: df[df[‘column_name’] > value]. This selects rows where the condition inside the brackets is True.
loc filters by label, using the actual index value (string, number, etc.) to select rows and columns. iloc filters by integer position, using the row and column number (starting from 0) to select data.
To sort by multiple columns, use df.sort_values(by=[‘col1’, ‘col2’], ascending=[True, False]). The by argument takes a list of column names, and ascending takes a list of boolean values specifying the sorting order for each column.
A MultiIndex is created using df.set_index([‘col1’, ‘col2’]), creating a hierarchical index. It allows you to select specific values based on either index (using .loc).
Use df.groupby(‘column_name’).mean() to group data by a column and calculate the mean of each group. This groups rows with the same value in ‘column_name’ and computes the mean of the numeric columns for each group.
Inner: Returns rows with matching values in both DataFrames.
Outer: Returns all rows from both DataFrames, filling in missing values with NaN.
Left: Returns all rows from the left DataFrame and matching rows from the right, filling in missing values with NaN.
Right: Returns all rows from the right DataFrame and matching rows from the left, filling in missing values with NaN.
III. Essay Questions
Discuss the importance of data cleaning in the data analysis process, providing specific examples of cleaning techniques relevant to the source material.
Compare and contrast the different methods for filtering and sorting data in Pandas DataFrames, illustrating the use cases for each method.
Explain the concept of indexing in Pandas and how MultiIndexing can be used to organize and access complex datasets.
Describe how you can perform exploratory data analysis using Pandas and relevant libraries, and why it is important.
Explain the concept of joining in Pandas and how different types of joins can be used to combine related data from multiple sources.
IV. Glossary of Key Terms
DataFrame: A two-dimensional labeled data structure in Pandas, similar to a table, with columns of potentially different types.
Series: A one-dimensional labeled array in Pandas, capable of holding any data type.
Index: A label for each row in a Pandas DataFrame or Series, used for data alignment and selection.
MultiIndex: A hierarchical index in Pandas, allowing multiple levels of indexing on a DataFrame.
NaN (Not a Number): A standard missing data marker used in Pandas.
Filtering: Selecting a subset of rows from a DataFrame based on specified conditions.
Sorting: Arranging rows in a DataFrame in a specific order based on the values in one or more columns.
Grouping: Aggregating data in a DataFrame based on the values in one or more columns.
Joining: Combining data from two or more DataFrames based on a common column or index.
Inner Join: Returns rows with matching values in both DataFrames.
Outer Join: Returns all rows from both DataFrames, filling in missing values with NaN.
Left Join: Returns all rows from the left DataFrame and matching rows from the right, filling in missing values with NaN.
Right Join: Returns all rows from the right DataFrame and matching rows from the left, filling in missing values with NaN.
Concatenation: Appending or merging DataFrames together, either horizontally or vertically.
Aggregation: Computing summary statistics (e.g., mean, sum, count) for groups of data.
Exploratory Data Analysis (EDA): An approach to analyzing data sets to summarize their main characteristics, often with visual methods.
Unicode Error: An error that occurs when reading a file with characters that are not properly encoded.
loc: A Pandas method used to access rows and columns by label.
iloc: A Pandas method used to access rows and columns by integer position.
Lambda Function: A small anonymous function defined using the lambda keyword.
Heatmap: Data visualization that uses a color-coded matrix to represent the correlation between variables.
Box Plot: A graphical representation of the distribution of data showing the minimum, first quartile, median, third quartile, and maximum values, as well as outliers.
Pandas Python Data Analysis Tutorial Series
Okay, here’s a briefing document summarizing the main themes and ideas from the provided text excerpts, which appear to be transcripts of a series of video tutorials on using the Pandas library in Python for data analysis.
Briefing Document: Pandas Tutorial Series Overview
Main Theme:
This series of tutorials focuses on teaching users how to leverage the Pandas library in Python for various data manipulation, analysis, and visualization tasks. The content covers a range of essential Pandas functionalities, from basic data input and output to more advanced techniques like filtering, grouping, data cleaning, and exploratory data analysis.
Key Ideas and Concepts:
Introduction to Pandas and DataFrames:
Pandas is imported using the alias pd: “we are going to say import and we’re going to say pandas now this will import the Panda’s library but it’s pretty common place to give it an alias and as a standard when using pandas people will say as PD”
Data is stored and manipulated within Pandas DataFrames.
DataFrames have an index, which is important for filtering and searching: “as you can see right here there’s this index and that’s really important in a data frame it’s really what makes a data frame a data frame and we use index a lot in pandas we’re able to filter on the index search on the index and a lot of other things”
The distinction between a Series and a DataFrame is mentioned, suggesting that this will be covered in more detail in a later video.
Data Input/Output:
Pandas can read data from various file formats, including CSV, text, JSON, and Excel.
The pd.read_csv(), pd.read_table(), pd.read_json(), and pd.read_excel() functions are used to import data.
Specifying the file path is crucial. The tutorial demonstrates how to copy the file path: “you have this countries of the world CSV you just need to click on it and right click and copy as path and that’s literally going to copy that file path for us so you don’t have to type it out manually”
The R prefix is used when reading files from a filepath to read the string as raw text.
The sep parameter allows specifying delimiters for text files: “we need to use a separator and I’ll show you in just a little bit how we can do this in a different way but with that read CSV this is how we can do it we’ll just say sep is equal to we need to do back SLT now let’s try running this and as you can see it now has it broken out into country and region”
Headers can be specified or skipped during import using the header parameter.
Column names can be manually assigned using the names parameter when the file doesn’t contain headers or when renaming is desired.
Imported DataFrames should typically be assigned to a variable (e.g., df) for later use.
Data Inspection:
df.info() provides a summary of the DataFrame, including column names, data types, and non-null counts: “we’re going to bring data Frame 2 right down here and we want to take a look at some of this data we want to know a little bit more about it something that you can do is data frame 2. info and we’ll do an open parenthesis and when we run this it’s going to give us a really quick breakdown of a little bit of our data”
df.shape returns the number of rows and columns in a DataFrame.
df.head(n) displays the first n rows of the DataFrame.
df.tail(n) displays the last n rows of the DataFrame.
Specific columns can be accessed using bracket notation (e.g., df[‘ColumnName’]).
loc and iloc are used for accessing data by label (location) and integer position, respectively.
Filtering and Ordering:
DataFrames can be filtered based on column values using comparison operators (e.g., df[‘Rank’] < 10).
The isin() function allows filtering based on a list of specific values within a column.
The str.contains() function allows filtering for rows where a column contains a specific string.
The filter() function can be used to select columns based on a list of items or to filter rows based on index values using the like parameter.
sort_values() is used to order DataFrames by one or more columns. Ascending or descending order can be specified.
Multiple sorting criteria can be specified by passing a list of column names to sort_values().
Indexing:
The index is an important component of a DataFrame and can be customized.
The set_index() function allows setting a column as the index. The parameter inplace = True saves this to the existing dataframe.
The reset_index() function reverts the index to the default integer index.
Multi-indexing allows for hierarchical indexing using multiple columns.
sort_index() sorts the DataFrame based on the index.
loc and iloc are used for accessing data based on the index. loc uses the string/label of the index, iloc uses the integer position.
Grouping and Aggregating:
groupby() groups rows based on the unique values in one or more columns. This creates a GroupBy object.
Aggregate functions (e.g., mean(), count(), min(), max(), sum()) can be applied to GroupBy objects to calculate summary statistics for each group.
The agg() function allows applying multiple aggregate functions to one or more columns simultaneously using a dictionary to specify the functions for each column.
Grouping can be performed on multiple columns to create more granular groupings.
The describe() function provides a high-level overview of aggregate functions, which is a shortcut.
Merging and Joining DataFrames:
merge() combines DataFrames based on shared columns or indices. It’s analogous to SQL joins.
Different types of joins (inner, outer, left, right, cross) can be performed using the how parameter.
Suffixes can be specified to differentiate columns with the same name in the merged DataFrame.
join() is another function for combining DataFrames, but it can be more complex to use than merge().
Cross joins create a Cartesian product of rows from both DataFrames.
Data Visualization:
Pandas integrates with Matplotlib for basic plotting.
The plot() function creates various types of plots, including line plots, bar plots, scatter plots, histograms, box plots, area plots, and pie charts, based on the kind parameter.
subplots=True creates separate subplots for each column.
Titles and labels can be added to plots using the title, xlabel, and ylabel parameters.
Bar plots can be stacked using stacked=True.
scatter() plots require specifying both x and y column names.
Histogram bins can be adjusted using the bins parameter.
Figure size can be adjusted to increase the visualization’s scale.
Matplotlib styles can be used to modify the appearance of plots.
Data Cleaning:
Data cleaning involves handling missing values, inconsistencies, and formatting issues.
string.strip() removes leading and trailing characters from strings. Lstrip() removes leading characters, and Rstrip() removes trailing characters.
string.replace() replaces specific substrings within strings.
Regular expressions can be used with string.replace() for more complex pattern matching. The caret (^) can be used to return any character except.
apply() applies a function to each element of a column (often used with lambda functions).
Data types can be changed using astype().
fillna() fills missing values with a specified value.
pd.to_datetime() converts columns to datetime objects.
drop_duplicates() removes duplicate rows.
The inplace=True parameter modifies the DataFrame directly.
Columns can be split into multiple columns using string.split() with the expand=True parameter.
Boolean columns can be replaced with ‘yes’ and ‘no’ values to standardize responses.
isna() or isnull() identifies missing values.
drop() removes rows or columns based on labels or indices. The drop = True parameter drops a former index and creates an equivalent new one.
dropna() removes rows with missing values.
Exploratory Data Analysis (EDA):
EDA involves exploring the data to identify patterns, relationships, and outliers.
info() and describe() provide high-level summaries of the data.
The float format can be adjusted via pd.setor_option.
isnull().sum() counts missing values in each column.
nunique() shows the number of unique values in each column.
sort_values() sorts the data based on specific columns.
corr() calculates the correlation matrix, showing the relationships between numeric columns.
Heatmaps (using Seaborn) visualize the correlation matrix.
Grouping (groupby()) and aggregation help understand data distributions and relationships across groups.
Transposing DataFrames (transpose()) can be useful for plotting group means.
Box plots visualize the distribution of data and identify outliers.
select_dtypes() filters columns based on data type.
Target Audience:
The tutorial series is designed for individuals who want to learn data analysis and manipulation using Python and the Pandas library, regardless of their prior experience with data science.
Overall Impression:
The series appears to be a comprehensive introduction to Pandas, covering a wide range of essential topics in a practical, hands-on manner. The instructor emphasizes best practices, common pitfalls, and useful techniques for working with real-world datasets. The inclusion of practical examples and visual aids helps make the learning process more engaging and effective.
Pandas DataFrame: Common Operations and FAQs
Frequently Asked Questions About Pandas Based on Provided Sources
Here are some frequently asked questions (FAQs) about using the Python Pandas library, based on the provided text excerpts.
1. How do I import the Pandas library and what is the standard alias?
To import the Pandas library, you use the statement import pandas. It’s common practice to give it the alias pd, like this: import pandas as pd. This allows you to refer to Pandas functions and objects using the shorter pd. prefix, which is a widely accepted convention in the Pandas community.
2. How do I read different file types (CSV, text, JSON, Excel) into Pandas DataFrames?
Pandas provides specific functions for reading various file formats:
CSV: pd.read_csv(“file_path.csv”)
Text: pd.read_table(“file_path.txt”) (often requires specifying a separator, e.g., sep=”t” for tab-separated files)
JSON: pd.read_json(“file_path.json”)
Excel: pd.read_excel(“file_path.xlsx”) (can specify a sheet name using sheet_name=”Sheet1″)
You typically assign the result of these functions to a variable (e.g., df = pd.read_csv(…)) to create a DataFrame object, making it easier to work with the data later.
3. What is a Pandas DataFrame and why is the index important?
A Pandas DataFrame is a two-dimensional labeled data structure with columns of potentially different types. Think of it as a table with rows and columns. The index is a crucial component of a DataFrame; it provides labels for the rows. The index allows you to filter, search, and select data based on these labels. By default, Pandas creates a numerical index (0, 1, 2, …), but you can set a specific column as the index for better data access.
4. How can I handle Unicode errors when reading files?
When reading files with backslashes in the file path, you might encounter Unicode errors. To resolve this, prepend r to the file path string to treat it as a raw string. For example: pd.read_csv(r”C:pathtofile.csv”). This ensures that backslashes are interpreted literally and not as escape characters.
5. How can I deal with files that don’t have column headers, or if I want to rename headers?
When reading files, Pandas may automatically infer column names from the first row. You can override this behavior using the header argument. header=None tells Pandas that there are no existing headers, using the first row as data. You can then specify custom column names using the names argument, passing it a list of strings representing the new column names.
6. How can I filter data within Pandas DataFrames?
You can filter rows in a DataFrame based on column values using comparison operators (>, <, ==, etc.) or functions:
Filtering by Column Value: df[df[“column_name”] > 10] returns rows where the value in “column_name” is greater than 10.
Using isin(): df[df[“country”].isin([“Bangladesh”, “Brazil”])] returns rows where the “country” column contains either “Bangladesh” or “Brazil”.
Using str.contains(): df[df[“country”].str.contains(“United”)] returns rows where the “country” column contains the string “United”.
7. How can I sort and order data within Pandas DataFrames?
Use the sort_values() method to sort a DataFrame by one or more columns. The by argument specifies the column(s) to sort by. ascending=True (default) sorts in ascending order, while ascending=False sorts in descending order. You can sort by multiple columns by providing a list to the by argument. The order of columns in this list determines the sorting priority. You can also specify different ascending/descending orders for different columns by providing a list of boolean values to the ascending argument.
8. How can I perform groupby aggregations in Pandas?
The groupby() method groups rows based on unique values in one or more columns. You can then apply aggregate functions (e.g., mean(), count(), min(), max(), sum()) to the grouped data.
df.groupby(“base_flavor”).mean() # Mean ratings grouped by base flavor
You can use the agg() method to apply multiple aggregations to different columns simultaneously. The argument to agg() is a dictionary where keys are column names and values are lists of aggregation functions:
The Pandas library in Python is a tool for data analysis, offering data structures like DataFrames and Series.
Key aspects of Pandas:
Alias When importing the Pandas library, it is common to use the alias PD.
DataFrames Pandas uses DataFrames, which are different from standard Python. When importing files using Pandas, the data is called in as a data frame. The index is an important component of a data frame, enabling filtering and searching. Assigning a DataFrame to the variable name DF is a common practice.
Series The next video in this series will explain what series are.
File Reading Pandas can read various file types such as CSV, text, JSON, and Excel. The specific function used depends on the file type (e.g., read_csv, read_table, read_json, read_excel).
File Paths File paths can be copied and pasted into the read function. To avoid Unicode errors, raw text reading may be necessary.
Arguments When reading files, arguments can be specified, such as the file path or separator.
Display Options Pandas allows you to adjust the display settings to show more rows and columns.
Data Inspection You can use .info() to get a quick breakdown of the data, .shape to see the dimensions (rows, columns), .head() and .tail() to view the first or last few rows, and column names to select specific columns.
Filtering and Ordering DataFrames can be filtered based on column values, specific values, or string content. The isin() function is available to check specific values. Data can be filtered by index using .filter(), .loc[], and .iloc[]. Data can be sorted using .sort_values() and .sort_index().
Indexing The index is customizable and allows for searching and filtering. The index can be set using set_index(). Multi-level indexing is supported.
Group By Pandas has the group by function to group together the values in a column and display them all on the same row. You can then perform aggregate functions on those groupings. The aggregate function has its own function (aggregate), where a dictionary can be passed through.
Merging, Joining, and Concatenating Pandas enables combining DataFrames through merging, joining, and concatenating.
Visualizations Pandas allows you to build visualizations such as line plots, scatter plots, bar charts, and histograms.
Cleaning Data Pandas is equipped with tools for data cleaning, including removing duplicates (drop_duplicates), dropping unnecessary columns (drop), and handling inconsistencies in data. The .fillna() function fills empty values.
Exploratory Data Analysis (EDA) Pandas is used for exploratory data analysis, which involves identifying patterns, understanding relationships, and detecting outliers in a dataset. EDA includes using .info() and .describe() to get a high-level overview of the data. Correlations between columns can be identified using .corr() and visualized with heatmaps.
Pandas DataFrames: Features, Functionalities, and Data Analysis
Pandas DataFrames are a central data structure in the Pandas library, crucial for data analysis in Python.
Key features and functionalities of DataFrames:
Definition A data frame is how Pandas calls in data, differing from standard Python.
Usual variable name Assigning a DataFrame to the variable name DF is a common practice.
Indexing The index is a customizable and important component, enabling filtering and searching. The index can be set using set_index().
Filtering and Ordering DataFrames can be filtered based on column values, specific values using isin(), or string content. Data can be filtered by index using .filter(), .loc[], and .iloc[]. Data can be sorted using .sort_values() and .sort_index().
Display Options Pandas allows adjusting display settings to show more rows and columns.
Data Inspection Tools like .info() provide a breakdown of the data. The .shape shows dimensions. Methods such as .head() and .tail() allow viewing the first or last few rows.
Merging, Joining, and Concatenating Pandas enables combining DataFrames through merging, joining, and concatenating.
Cleaning Data Pandas is equipped with tools for data cleaning, including removing duplicates (drop_duplicates), dropping unnecessary columns (drop), and handling inconsistencies in data. The .fillna() function fills empty values.
Exploratory Data Analysis Pandas is used for exploratory data analysis, including using .info() and .describe() to get a high-level overview of the data. Correlations between columns can be identified using .corr() and visualized with heatmaps.
File Reading When reading files using Pandas, the data is called in as a data frame.
Pandas: Data Import Guide
Pandas can import data from a variety of file types. When the files are imported using Pandas, the data is read in as a data frame. The specific function used depends on the file type.
Types of files that Pandas can read:
CSV
Text
JSON
Excel
Functions for reading different file types:
read_csv
read_table
read_json
read_excel
Key considerations when importing files:
File Paths The file path needs to be specified, and can be copied and pasted into the read function.
Raw Text Reading Raw text reading may be necessary to avoid Unicode errors. To specify raw text reading, use r before the file path.
Arguments When reading files, arguments can be specified, such as the file path or separator.
Alias When importing the Pandas library, it is common to use the alias PD.
Headers The header argument can be used to rename headers or specify that there is no header in the CSV. The default behavior is to infer column names from the first row. You can set header=None if there are no column names, which will cause numerical indexes to be created.
Separator When reading in a file, you can specify the separator. When pulling in a CSV, it will automatically assume that the separator is a comma. When importing text files, you may need to specify the separator.
Missing Data When merging data, if a value doesn’t have a match, it will return NaN.
Sheet names When importing Excel files, you can specify a sheet name to read in a specific sheet, otherwise it will default to the first sheet in the file.
Filtering Pandas DataFrames
Pandas DataFrames can be filtered in a variety of ways.
Filtering Based on Column Values
You can filter DataFrames based on the data within their columns. To do this, specify the column to filter on. Comparison operators, such as greater than or less than, can be used.
Specific values can be specified.
Filtering Based on Index
You can also filter based off of the index.
The main ways to filter by index are the .filter() function and the .loc[] and .iloc[] indexers.
The .filter() Function
With .filter() you can specify which columns to keep by using items = and then listing the columns.
By default, .filter() chooses the axis for you, but you can also specify the axis.
You can also use like = to specify a string, and it will filter by the indexed values that contain that string.
The .loc[] and .iloc[] Indexers
.loc[] looks at the actual name or value.
.iloc[] looks at the integer location.
With multi-indexing, .loc[] is able to specify the index, whereas .iloc[] goes based off the initial index, or the integer based index.
Pandas DataFrame Sorting: Values and Index
Pandas DataFrames can be ordered using the .sort_values() and .sort_index() functions.
Sorting by Values (.sort_values())
The .sort_values() function allows you to sort a DataFrame based on the values in one or more columns.
Specify the column(s) to sort by using the by parameter.
Determine the sorting order using the ascending parameter, which can be set to True (ascending) or False (descending). The default is ascending.
Multiple columns can be specified for sorting by passing a list of column names to the by parameter. The order of importance in sorting is determined by the order of columns in the list.
You can specify different ascending/descending orders for each column when sorting by multiple columns by passing a list of boolean values to the ascending parameter.
Example: To sort a DataFrame by the ‘Rank’ column in ascending order: df.sort_values(by=’Rank’, ascending=True).
Sorting by Index (.sort_index())
The .sort_index() function sorts the DataFrame based on its index.
You can specify the axis to sort on and whether the order is ascending or not.
Learn Pandas in Under 3 Hours | Filtering, Joins, Indexing, Data Cleaning, Visualizations
The Original Text
what’s going on everybody welcome back to another video today we are going to be learning pandas in under 3 [Music] hours so in this lesson we’re going to cover a ton of things as well as some projects at the very end you’re going to learn how you can read data into pandas and actually store it in a data frame we’ll be filtering quering grouping and a ton of other things just on that data and then we’ll be diving into Data visualization data cleaning exploratory data analysis and a ton more so without further Ado letun them on my screen and get started so the first thing that we need to do is import our pandas Library so we’re going to say import and we’re going to say pandas now this will import the Panda’s library but it’s pretty common place to give it an alias and as a standard when using pandas people will say as PD so this is just a quick Alias that you can use uh that’s what I always use and I’ve always used it because that’s how I learned it and I want to teach it to you the right way so that’s how we’re going to do it in this video so let’s hit shift enter now that that is imported we can start reading in our files now right down here I’m going to open up my file explorer and we have several different types of files in here we have CSV files text files Json files and an Excel worksheet which is a little bit different than a CSV so we’re going to import all of those I’m going to show you how to import it as well as some of the different things that you need to be aware of when you’re importing so we’re going to import some of those different file types and I’ll show you how to do that within pandas so the first thing that we need to say is PD Dot and let’s read it in a CSV because that’s a pretty common one we’ll say read CSV and this is literally all you have to write in order to call that in now it’s not going to call it in as a string like it would in one of our previous videos if you’re just using the regular operating system of python when you’re using pandas it calls it in as a data frame and I’ll talk about some of the nuances of that so let’s go down to our file explorer we have this of the world CSV you just need to click on it and right click and copy as path and that’s literally going to copy that file path for us so you don’t have to type it out manually you can if you’d like and we’re just going to paste it in between these parentheses now if we run it right now it will not work I’ll do that for you it’s saying we have this Unicode error uh basically what’s happening is is it’s reading in these backslashes and this colon and all those backslashes in there and this period at the end what we need to do is read this in as a raw text so we’re just going to say R and now it’s going to read this as a literal string or a literal value and not as you know with all these backslashes which does make a big difference when we run this it’s going to populate our very first data frame so let’s go ahead and run it and now we have this CSV in here with our country and our region now if we go and pull up this file and let’s do that really quickly let’s bring up this countries of the world it automatically populated those headers for us in the data frame but we don’t have any column for those 0 1 2 3 so if we go back as you can see right here there’s this index and that’s really important in a data frame it’s really what makes a data frame a data frame and we use index a lot in pandas we’re able to filter on the index search on the index and a lot of other things which I’ll show you in future videos but this is basically how you read in a file now if we go right up here in between these parentheses and we hit shift tab this is going to come up for us let’s hit this plus button and what this is is these are all the arguments or all the things that we can specify when we’re reading in a file and there are a lot of different options so let’s go ahead and take a look really quickly really quickly I wanted to give a huge shout out to the sponsor of this entire Panda series and that is udemy udemy has some of the best courses at the best prices and it is no exception when it comes to pandas courses if you want to master pandas this is the course that I would recommend it’s going to teach you just about everything you need to know about pandas so huge shout out to yud me for sponsoring this Panda series and let’s get back to the video the first thing is obviously the file path we can specify a separator which there is no default so when we’re pulling in the CSV when we’re reading in the CSV it’s automatically going to assume it’s a comma because it’s a comma separated uh file you can choose delimers headers names index columns and a lot of other things as you can see right here now I will say that I don’t use almost any of these uh the few that I’m going to show you really quickly in just a second are up the very top but you can do a ton of different things and I’m just going to slowly go through them so that’s what those are you can also go down here this is our doc string and you can see exactly how these parameters work it’ll show you and give you a text and walk you through how to do this again most of these you’ll probably never use but things like a separator could actually be useful and things like a header could be useful because it is possible that you want to either rename your headers or you don’t have a header in your CSV and you don’t want it to autop populate that header so that is something that you can specify so for example this header one and I’ll show you how to do this uh the default behaviors to infer that there are column names if no names are passed this behavior is identical to header equals zero so it’s saying that first row or that first index which it’s like right here that zero is going to be read in as a header but we can come right over here and we’ll do comma header is equal to and we can say none and as you can see there are no headers now instead it’s another index so we have indexes on both the x- axis and the Y AIS and so right now we have this zero and one index indicating the First Column and the second column if we want to specify those names we can say the header equals none then we can say names is equal to and we’ll give it a list and so the first one was country and what’s that second one oh region so right here that’s the first um the first row but we’ll rename it and we’ll just say country and region and when we run that we’ve now populated the country and the region uh we’re just pretending that our CSV does not have these values in it and we have to name it ourselves that’s how you do it but let’s get rid of all that because we actually do want those in there so we’re just going to get rid of those and read it in as normal and there we go now typically when you’re reading in a file what you need to do is you want to assign that to a variable almost always when you see any tutorial or anybody online or even when you’re actually working people will say DF is equal to DF stands for data frame again this is a data frame in the next video in the series I’m going to walk through what a series is as well as what a data frame is because that’s pretty important to know when you’re working with these data frames but we’ll assign it to this value and then we’ll say we’ll call it by saying DF and we’ll run it and that’s typically how you’ll do things because you want to save this data frame so later on you can do things like dataframe Dot and you can uh you know pass in different modules but you can’t really do that it’s not as easy to do it if you’re calling this entire CSV and importing it every time so let’s copy this because now we’re going to import a different type of file so now we’ve been doing read CSV but we can also import text files now you can do that with the read CSV we can import text files let’s look at this one we have the same one it’s countries of the world except now it’s a text file because I just converted it for this video I’ll copy that as a path and so now when we do this oops let me get those quotes in there it’ll say world. txt it will still work as you can see this did not import properly um we have this country back SLT region and then all of our values are the exact same with this back SLT that’s because we need to use a separator and I’ll show you in just a little bit how we can do this in a different way but with that read CSV this is how we can do it we’ll just say sep is equal to we need to do back SLT now let’s try running this and as you can see it now has it broken out into country and region we could also do it the more proper way and this is the way you should do it and I’ll get rid of these really quickly but just want to keep them there in case you want to see that but you can also do read table and let’s get rid of this separator and now we have no separators just reading it in as a table let’s run this and it reads it in properly the first time this read table can be used for tons of different data types but typically I’ve been using it for like text files um we can also read in that CSV so let’s change this right here to CSV we can read it in as a CSV but just like we did in the last one when we read in the text file using read CSV this read table to you’re going to need to specify the separator so I’ll just copy this and we’ll say comma and now it reads it in properly again you can use that for a ton of different file types but you just need to specify a few more things if you don’t want to use the more specific read uncore function when you’re using pandas now let’s copy this again we’re going to go right down here and now let’s do Json files Json files usually hold semi-structured data um which is definitely different than and very structured data like a CSV where has columns and rows so let’s go to our file explorer we have this Json sample we will copy this in as path let’s paste it right here and we’ll do reor Json again these different functions were built out specifically for these file types that’s why you know each one has a different name so now we’re reading this in as the Json let’s read it in and it it in properly now let’s go ahead and copy this and take a look at Excel files cuz Excel files are a little bit different than other ones that we’ve looked at um so let’s just do read uncore cell and let’s go down to our file explorer and let’s actually open up this workbook as you can see we have sheet one right here but we also have this world population which has a lot more data let’s say we just wanted to read in sheet one one we can do that or by default it’s going to read in this world population because it’s the first sheet in the Excel file well let’s go ahead and take a look at that let’s get out of here and let’s say oops I forgot to copy the file path let’s go ahead and copy as path and we’ll put it right here and let’s just read it in with no arguments or anything in there or no parameters when we read it in it’s reading in that very first sheet so this is the one that has all of the data now let’s say we wanted to read in that extra sheet name or the second sheet name we’ll just go comma sheet unor name say is equal to and then we can specify sheet was it sheet one like this yes it was so we just had to specify the sheet name right here and then it brought in that sheet instead of the default which is the very first sheet in that Excel now that definitely covers a lot of how you read in those files again you can come in here and hit shift Tab and this plus sign and take a look at all the documentation and you can specify a lot of different things things that I didn’t think were very important for you guys to know especially if you’re just starting out the ones that we looked at today are what I would say are like the ones that I use almost all the time so I wanted to show you those but if you’re interested in any of these other ones or you have very unique data and you need to do that um you know it’s worth really getting in here and figuring things out a few other things that I wanted to show you just in this kind of first video or this intro video on how to read in files um one thing that you may have noticed especially in this file right here is we’re only looking at the first five and then the last five so if we wanted to see all the data all the data is in these like little three dots right here right we want to be able to see that data but right now we can’t and that’s because of some settings that are already within pandas and all we need to do is change that so this one has 234 rows and four columns so obviously we can see all the columns well let’s just change the rows all we’ll say is pd. setor option now what we need to do is we’re going to change the rows we’re not going to change the columns at least not on this one so we’ll say quote display. max. rows now if we just run this for whatever data we bring in it’s going to be able to show the max rows and then we’ll say 235 although this 34 rows I’m just going to be safe let’s run this and now it has changed it so let’s read in this file again and you’ll see how it’s changed now we have all the numbers and we have this little bar on the right that allows us to go down all the way to the bottom and all the way to the top so now we can actually look and kind of skim and see our values I like that better than just having that you know shorter version um we can do the exact same thing on columns as well so if we look at this one this is our Json file has the same thing right here we have what was it 38 columns but we can only see I think it’s it’s 20 or something like that I can’t remember um but we have 38 we can only see like let’s say 15 of them or 20 of them we’ll do the exact same thing and we’ll just say pd. set options. max. columns and we’ll set that to 40 for that one when we run this oops let’s get over here when we run this one again we can now scroll over and see every single one of our columns now that one is a in my opinion a lot more useful I like being able to see every single column so definitely something that you should be using especially when you have these really large files you want to be able to see a lot of the data and a lot of the columns so when you’re slicing and dicing and doing all the things we’re about to learn in this Panda series you know you know what you’re looking at I also want to show you just how to kind of look at your data in these data frames as well so that’s also pretty important so let’s go right down here and the very last one that we imported was this one right here this read Excel so this data frame is the only one that’s going to read in let’s run it um this is the last one to be run so this variable right here DF uh it won’t be applied to all these other ones um which we can always go back and change those typically you’ll do something like data frame two you want to do something like that um so let’s keep data Frame 2 oops so what we’re going to do is we’re going to bring data Frame 2 right down here and we want to take a look at some of this data we want to know a little bit more about it something that you can do is data frame 2. info and we’ll do an open parenthesis and when we run this it’s going to give us a really quick breakdown of a little bit of our data so we have our columns right here rank CCA 3 country and capital it’s saying we have 234 values in those columns because there’s 234 scroll up here because there’s 234 uh rows that tells me that there’s no missing data in here at least not you know completely missing like null values there is something in each of those rows the count tells me it’s non null so there’s no null values and it tells me the data type so it’s ringing in as an integer an object an object and an object and it also tells us how much memory it’s using which is also pretty neat because when you get really really large data types memory usage and and knowing how to work around that stuff does become more important than when you’re working at these really small You Know sample sizes that we’re looking at we can also do oops let me get rid of that can also do data frame two and we’ll do shape and for this one we do not need the parentheses and all this is going to tell us is we have 234 rows and four columns we’re also able to look at uh the first few values or rows in each of these data frames so we can just say dataframe 2. head and if we do that it’s going to give us the first five values but we can specify how many we want we can say head 10 it’ll give us the first 10 rows right here we can do the exact same thing and let’s go right down here and we’ll say tail so they’ll give us the last 10 rows within our data frame now let’s copy this and let’s say we don’t want to actually look at all of these values or all these columns we can specify that by saying df2 and oops let’s get rid of all of this and we’ll say with a quote we’ll say Rank and now we can take just a look at the rank data now we can’t do that by doing the index or at least not like this if we want to use this index that is right here we can but there’s a very special function called L and I look for that and I’m going to have an entire video on this because it does get a little bit more complex but there’s df2 looc and there’s Lo and IO stands for location and I location that’s only for the indexes whether it’s the x axis or the Y AIS those are the indexes and for location it’s looking for the actual text the actual string of the index so if we come up here that data Frame 2 we can specify 224 and it’ll give us this information right here in a little different format so let’s go bracket and we’ll say 224 and when we run this it gives us our rank CCA country capital with our values over here kind of like a dictionary almost now let’s copy this and we’ll say df2 do IO and right now these look the exact same but we haven’t really talked a lot about changing the index and you can change the index to a string or a different column or something like that and we’ll look at that in future videos the iock looks at the integer location so even if these um let’s go right up here even if this index had changed to let’s say this rank or this CCA three or country or whatever you make this index the ILO will still look at the integer location so that 224 would still be 224 even if it was usbekistan so then when we look at this it’s going to be the exact same but if we had changed that Index this Lo is the one that we could search on and we could search whoan is that you spell us beckan hey I nailed it so that is how you use Lo IO again I just wanted to show you a little bit about how you can look at your data frame or search within your data frame hello everybody today we’re going to be looking at filtering and ordering data frames in pandas there are a lot of different ways you can filter and order your data in pandas and I’m going to try to show you all of the main ways that you can do that so let’s kick it off by importing our data set so we’re going to say data frame is equal to and we’ll say pandas and I need to import my andas so we’ll say import andas as PD that’s pretty important I think um so pd. read CSV and we’ll do R and then we’ll say the world population CSV so let’s run this all our data frame right here and this is the data frame that we’re going to be filtering through and ordering in pandas so let’s kick it off the first thing that we can do is filter based off of The Columns so the data within our columns so Asia Europe Africa or whatever data we may have in that column so let’s go right down here we’re going to say DF and then within it we’re going to specify what column we’re going to be filtering on so we’re going to say DF with another bracket and we’ll say rank so we’re going to be looking at this rank column right here and then we’ll say in that rank column we want to do greater than 10 and that’s actually going to be a lot of them let’s do less than so when we run this it’s only going to return these values that are less than 10 we can also do less than or equal to you know all of these um comparison operators so less than or equal to so now we have all of the ranks 1 through 10 now if we look at these countries we can specify by specific values almost exactly like we did here but instead of doing a comparison operator like we did right here and including those names let’s say Bangladesh and Brazil we can use the is in function almost like an in function in SQL if you know SQL so let’s go right down here and we’re going to say specific underscore countries so right now we’re just going to make a list of the countries that we want and then we’ll say Bangladesh and Brazil so let’s go right down here and we’ll say okay for these specific countries from the data frame let’s do our bracket we’ll say in this country column so we’ll do data frame and then another bracket for Country so in this country column we can do do is in and then an open parenthesis and then look for our specific countries so we’re looking at just this column and we’re saying is in so we’re looking at are these values within this column and we’re getting this error and this looks very very odd let me um this doesn’t look right there we go I just had some syntax errors I apologize made it way more complicated than it needs to be but here’s how you use this is in function so we’re looking at Bangladesh and Brazil and we return those rows with Bangladesh and Brazil really quickly I wanted to give a huge shout out to the sponsor of this entire Panda series and that is udemy udemy has some of the best courses at the best prices and it is no exception when it comes to Panda courses if you want to master pandas this is the course that I would recommend it’s going to teach you just about everything you need to know about pandas so huge shout out to you and me for sponsoring this Panda series and let’s get back to the video we can also do a contains function kind of similar to is in in except it’s more like the like in SQL as well I’m comparing a lot of this to SQL cuz when you’re filtering things I always my brain always goes to SQL but in pandas it’s called the contains so let’s do let’s actually copy this because I don’t want to make the same mistake again let’s do that and we’ll do the bracket but instead of dot is in we’re going to do string do contains and then an open parenthesis so we’re going to be looking for a string if it contain if it contains let’s do United almost like United States or or any other United so let’s run this and as you can see we have United Arab Emirates United Kingdom United States United States Virgin Islands so we can kind of search for a specific string or a number or a value within our data or within that column of country now so far we’ve only been looking at how you can filter on these columns we can also filter based off of the index as well and there’s two different ways you can do it or two of the main ways there’s filter and then there’s Lo and IO Lo stands for location and I look stands for integer location and if you’ve seen other previous videos I’ve kind of mentioned those so we can take a quick look at all of those so really quickly we need to set an index because the index right now is uh not the best we’ll set our index to Country so let’s say df2 is equal to D DF do setor index and we’ll say country I’m just doing df2 because later on I want to use that data frame again so I’m just going to assign it to another data frame so that we can just easily switch back and forth so now we have this index as the country and what we can do is use the filter function so let’s go down here we’ll say df2 filter and we’ll do an open parenthesis and now we can specify our items so these these are actually going to be specifying which columns we want to keep so we’re going to say items is equal to then we’ll make a list we’ll say continent hope that’s how we spell continent I’m always messing up with my uh my stuff here my spelling then we’ll do CCA 3 because why not you can specify whichever ones you want when we run this it’s going to only bring in those two columns Now by default it’s choosing the axis for us but we can also specify which axis we want to search on so if we say axis is equal to zero it’s actually going to search this axis this is the zero axis this is the one axis so where our columns are is one so if we go back and do one we’re searching on that one Axis or those header accesses again and this is the default but you can specify that so if you just want to search on uh you know filtering right here you can do that and let’s actually copy this and do that right down here just so you can see what it looks like but let’s let’s search for Zimbabwe and we’ll do Zimbabwe and we’ll be looking at the zero axis which is the up and down on the left hand side and when we filter on that we can filter by Zimbabwe by looking just at the country index we can also use the like just like we did before and I’ll show you the exact same demonstration that we did which you can say like is equal to and instead of having to put in a concrete um text you can just say United just like we did before and we’re searching where the AIS is equal to zero which again is this left-handed access so now we’re looking for United and it’s going to give us all of the countries or all the indexed values that have United in it like we were talking about before we also have Lo and ILO so we can say data frame 2. Loke now this is a specific value so we’ll do United States so location is just looking at the actual name or the value of it not its position so if we search for United States it’s going to give us this right here where it gives us all of the columns for United States and then all of the uh values for United States or we can do the io which is the energer location which is not the exact same because we’re looking at the string for the L we’re looking at this string but underneath it there still is a position that’s that integer location let’s do a completely Rand random one let’s just say three if we look at the third position it’s going to give us ASM which I’m not exactly sure what it is but it still gives us basically the same kind of output which is the columns and the values so that’s another way that you can search within your index when you’re actually trying to filter down that data now let’s go look at the order bu and let’s start with the very first one that we looked at let’s do data frame that’s why I kept it because I wanted to use it later now we can sort and order these values instead of it just being kind of a jumbled mess in here we can sort these columns however we would like ascending descending multiple columns single columns and let’s look at how to do that so we’ll say data frame and then we’ll do data frame look at rank again just like we were doing above and let’s do data frame where it’s less than 10 I should have just gone and copied this I apologize so now we have this data frame that is greater than 10 now we can do dot sort underscore values and this is the function that’s going to allow us to sort everything that we want to sort so we can do buy is equal to and we’ll just order it by the exact same thing that we were doing uh or calling it on we’ll do rank so now what this going to do it’s going to order our rank column and as you can see it did that 1 2 3 4 5 we can also do it with ascending or descending so if you want to you can look in here and see what you can do so we’ll do ascending we’ll say that’s equal to true and so that’s the automatic default so that didn’t change anything but if we say false it’s going to be descending from highest to lowest so now we have it in the opposite direction now we don’t have to just order or sort this on one single column we can do multiple columns and we can do that by making a list right here whoops make a list just like that and we’ll input different ones as well so now let’s input our country and when we run this it will give us rank of 9876 as well as the country of Russia Bangladesh Brazil now if you noticed the country really didn’t change because the rank stayed the exact same that’s because there’s an order of importance here and it starts with the very first one if we change this around and we look at this one and put a com right here now the country is going to to be descended and the rank would come second so it’s not going the rank isn’t going to really have any effect here so now we have the country United States Russia Pakistan and the rank really didn’t get ordered at all now if we want to see how that can actually work let’s do continent right here and actually put it right here and do country here so if we run this it’s first going to come and it’s going to organize or sort the continent then it’s going to come back and go to the country and then it’s going to sort the country so keep so keep your eye right here in this Asia area because we’re going to sort this differently than ascending so we have ascending false and that applies to both of these it’s false and false but we can specify which one we want to do we can do a false here and a true here so we’ll do false comma true and what this is going to do is it’s going to say false for the continent so the continent right here is going to stay the exact same and so that is a lot of how you can filter and order your data within pandas hello everybody today we’re going to be looking at indexing in pandas if you remember from previous videos the index is an object that stores the access labels for all pandas objects the index in a data frame is extremely useful because it’s customizable and you can also search and filter based off of that index in this video we’re going to talk all about indexing how you can change the index and customize that as well as how you can search and filter on that index and then we’re also going to be looking at something a little bit more advanced called multi indexing and you won’t always use it but it’s really good to know in case you come across a data frame that has that in it so let’s get started by importing pandas import pandas as PD now we’ll get our first data frame we’ll say DF is equal to pd. read CSV and I’ve already copied this but we’re going to do R and we’re going to put this file path so I have this world population CSV I will have that in the description just like I do in all of my other videos let’s run DF and let’s take a look at this data frame so we have a lot of information here we have rank country continent population as well as the default index from zero all the way up to 233 now if you haven’t watched any of my previous videos on pandas the index is pretty important and it’s basically just a number or a label for each row it doesn’t even necessarily have to be a unique number um you can create or add an index yourself if you want to and it doesn’t have to be unique but it it really should be unique uh especially if you want to use it appropriately for what we’re doing the country is actually going to be a pretty great index because the country you know is going to be all unique because we’re looking at every single row as a different um country as well as the population so let’s go ahead and create this country or add this country as our index now we can do this in a lot of different ways but the first way that you can do this if you already know what you are going to create that index on is we can just go right in here when we’re reading in this file and we’ll say comma index underscore oops I spelled that completely wrong index underscore column and we’ll say that is equal to and then we’re going to say quote country so we’re taking this country and we’re going to assign it as the index now let’s read this in and as you can see this is our index now it looks a little bit different we didn’t have this country header right here which is specifying that this is still the country but you can you can tell that this is the index based off the um bold letters as well as it being on the far left and all the regular columns for the data is over here while the country header is right here and it’s lower than all the others just a quick way that you can see that that is the index now before we move on I want to show you some other ways that you can do this as well but I’m going to show you how to reverse this index before we move on and we’ll say data frame so we had our data frame right here so we have data frame dot we’ll say reset unor index and then we’ll say in place is equal to True which means we don’t have to assign this to another variable and all that stuff it’ll just be true so now when we run that data frame again the index was reset to the default numbers so now let’s go down here and I’ll show you how to do this in a different way you can do DF do we’ll say setor index and then we’ll just say country so very similar to when we were reading in that file and we said set the index or that index column we said index column equals country if we do this and we run it in it works but if we say data frame right down here it’s not going to save that if we want to save it just like we did above we’re going to say in place is equal to true that is going to save it to where we don’t have to assign it another variable so now when we run this the data frame right here which is going to populate this the data frame is going to say in place is equal to true so that country will now be our index again let’s run this and there we go really quickly I wanted to give a huge shout out to the sponsor of this entire Panda series and that is udemy udemy has some of the best courses at the best prices and it is no exception when it comes to pandas courses if you want to master pandas this is the course that I would recommend it’s going to teach you just about everything you need to know about pandas so huge shout out to you me for sponsoring this Panda series and let’s get back to the video now what’s really great about this index is we’re able to search based off just this index and so we can filter on it and and basically look through our data with it and there are two different ways that you can do that at least this is a very common way that people who use pandas will do to kind of search through that index the first one is called lock and there’s lock and iock that stands for location or integer location let’s look at lock first let’s say DF do loock and then we’ll do a bracket now we’re able to specify the actual string the label so let’s go right up here and let’s say Albania so we’ll say Albania so again this is just looking at the location let’s run this now it’s going to bring up all the Albania data just like here where it’s kind of looks like a colum in a column and we can get this exact same data but using iock right here and when we ran lock we were searching based off Albania which is in the 0 one position so if we actually pull the one position for that integer the ilock we can look at the one position and this should give us the exact same data now let’s take a look at multi- indexing and we’ll come back to a little bit of this in a second so multi- indexing is creating multiple indexes we’re not just going to create the country as the index now we’re going to add an additional index on top of that so let’s pull up our data frame right now we have the country but let’s do dot reset index and we’ll say in place equals true oops oops let’s run it so now we have our data frame now let’s set our index but this time when we set our index we’re going to add the country as the index as well as the continent as an index so we’ll say data frame. setor index then we’ll do a parenthesis and instead of just doing country like we did before we’re going to create a list oops and we’ll do it like that and then we’ll say oops continent and separate by a comma so we have continent and country let’s just say in place is equal to true now when we run this we’re going to have two indexes let’s see what this looks like and let’s run this so now we have country as well as continent as our index now you may notice that these indexes are repeating themselves on this continent index we have Europe right here and Europe right here as well as Asia and Asia and it looks a little bit funky but we are able to sort these values and make they look a lot better so let’s go ahead and try this we’ll do DF do sortore index and when we run this it should sort our index alphabetically and we can also look in here and see what kind of things we can you know specify we can specify the axis but it’s automatically going to be looking at the zero this is zero and this is one so we have two axes within our data frame you choose the level whether it’s ascending or not ascending in place kind string sort remaining all of these different things the only one that I really you know think is worth looking at is the ascending we already know some of these other ones but if we look at ascending let’s run it now it’s sorted these and so now it’s kind of grouped together so we have Africa and all the African ones as well as South America and all the South American ones let’s really quickly say pd. setor option and we’ll say display. max. columns and just like this let’s run it and I need to specify whoops specify right here let’s see how many rows we have 235 so let’s do 235 let’s run this and now when we run this you can see that Africa is all grouped together and all the countries are in alphabetical order under it and then we go all the way down to Asia and again just all in alphabetical order if we wanted to we could say ascending equals true and then when we run this Oh meant to say false and then when we run this it’s the exact opposite so it starts with South America the last one and then goes in reverse alphabetical order we could also say false make it a list and do comma true and just like this and then it would sort this First Column as false and this next column as true so you can really customize it but you know for what we’re doing we don’t need any of that we just need to be able to see this right here so now when we try to search by our index like we did before we did data frame. Loke now when we did that and we said you know let’s say Angola when we specified Angola it’s not going to work properly because it’s searching in this first index for the first string that we have we can search Africa and let’s search for Africa and now we have all of the African countries and if we want to specify to Angola we can also go down another level oops by doing angle Angola and now we have what we were looking at before where we’re calling all the data within those but we couldn’t do it just based off Africa because we had an additional Index right here here so once we called both indexes now we get this view but let’s look at that I look really quick when we run this let’s just say one because right up here oh we have Angola zero and then one so you think it may pull up Angola let’s go ahead and run this and it’s still pulling up Albania let’s go right up here if you remember when we didn’t have the multiple indexes it was pulling up Albania the difference when you’re doing these multi- indexes is that the L is able to specify this whereas this one does not go based off that multi- indexing it’s going to go based off the initial index or the integer based index so that’s a lot about indexing in pandas we’ll cover even a few more things in future videos as we get more and more into pandas but this is a lot of what indexing looks like within pandas and again super important to learn how to do and know how to do because it’s a pretty important building block as we go through this Panda series hello everybody today we’re going to be taking look at the group by function and aggregating within pandas Group by is going to group together the values in a column and display them all on the same row and this allows you to perform aggregate functions on those groupings so let’s start reading in our data and take a look so we’re going to do import pandas as PD and then we’re going to say our data frame is equal equal to and we’ll say pd. read CSV we’ll do an open parenthesis R and our file path and we’re going to be looking at the flavors CSV right here so right here we have our flavor of ice cream we have our base flavor whether it was vanilla or chocolate whether I liked it or not the flavor rating texture rating and its overall or its total rating now these are all my own personal scores so you know I’ve spent years researching this so these are all very accurate but this should be a low stress environment to learn Group by and the aggregate functions so the first thing that we can do is look at our group by now you can’t Group by well you can you can Group by flavor but as you can see these are all unique values what we need is something that has duplicate values or or similar values on different rows that’ll group together so this base flavor is actually a perfect one to group it on and we’ll do that by saying DF do group by do an open parenthesis and we’ll just specify base flavor and this will then group together those values and I need to make sure I can spell properly this will group those flavors together so let’s run this and as you can see it actually is its own object so it has a group by data frame Group by object so now that we’ve grouped them let’s give it a variable so we’ll say group underscore byor frame let’s say that’s equal to Let’s copy this we’ll run it and now what we need to do is run our aggregations in order to get an output so we’re going to say mean and that’s all we’re going to put just for now just to get an output that we can take a look off and then we’ll build from there so let’s go ahead and run this and right here we have our base flavor which is now saying is the index of chocolate or vanilla and then it’s taking the mean or the average of all all the columns that have integers notice that it did not take the liked column and it did not take the flavor column because those are strings and they cannot aggregate those and we’ll take a look at that later but it took all the values that have integers and then it gave us the average of those ratings really quickly I wanted to give a huge shout out to the sponsor of this entire Panda series and that is udemy udemy has some of the best courses at the best prices and it is no exception when it comes to pandas courses if you want to master pandas this is the course that I would recommend it’s going to teach you just about every everything you need to know about pandas so huge shout out to UD me for sponsoring this Panda series and let’s get back to the video so right off the bat as averages with chocolate I have a much higher rating overall than the ones with vanilla bases now we can actually combine all of this together into one line and we can do something like this so we’ll say DF do groupby and we’ll say mean just like this and this will actually run it before we didn’t have any aggregating function on there so didn’t run but now that we combine it all into one it will run properly now there are a lot of different aggregate functions but I’m going to show you some of the most popular ones or the most common ones that you will see so let’s copy this right here so we can do dot count and when we run this we can look at the count and this will show us the actual count of the rows that were aggregated so for chocolate we had three so there going to be three all the way across and for vanilla we had six so we’re looking at a higher count of vanilla which if you’re comparing it to this mean up here that could be a big skew towards the chocolate because if you have one or two good chocolates it could really pull the numbers up whereas if you had two good vanillas but all the other ones were bad it pulls that average down so knowing the count of something is really good let’s take a look at the next one and we can do Min and Max and I’ll just run these really quickly we can do Min and when we run this the first thing that you should notice is that it now has a flavor and a liked column and that’s because Min and Max will actually look at the first letter in the string or the first set of letters if there are um you know chocolate something it’ll look at the first and then it’ll actually populate it so chocolate with the CH chocolate is the very first or the minimum value for that string and for a cake batter that is the minimum value in vanilla as well now with the liked it’s interesting because apparently I liked all the chocolate ones I’m going to go take a look so chocolate I liked chocolate I liked chocolate I like so there is no no option in this liked column so yes was the only option and now let’s look at Max whoops and it should do the exact opposite which is going to take the highest value even if it’s a string so Rocky Road the letter R comes later in the alphabet so that’s what it’s looking at and so does vanilla and then we have yes as well and then of course right here it’s taking the max value so before when we were looking at Min I just focused on those but it still does the exact same thing to these integer um columns as well so for the max value for vanilla it was mint chocolate chip that was our base so I had a rating of 10 for this vanilla row or grouping and then we can also look at the sum and there are all the sums for these and again it only does integer because we can’t add the strings here are the sum or the total values for all of them and for the total values since we had you know six rows that were grouping into this vanilla we now have a lot or much higher score for vanilla now that’s a really simple way to do your aggregations but there is actually an aggregation function and let’s take a look at this because this is um a little bit more complex although when I write it out or show you hopefully it makes a lot of sense we can do a so this is our aggregate function and what we need to pass into our aggregate function is actually a dictionary so let’s do an open parenthesis and we’re going to do a squiggly bracket and then we need to specify what we’re going to be aggregating on or what column so let’s do this flavor rating let’s copy this we’ll do flavor rating and I need to put that as a string and then we’ll do a colon and now we can specify what aggregate functions we want so we’ve done sum count mean Min and Max all of those and we can actually put all of those into here and perform all of those aggregations on just one column so let’s make a list and then let’s say mean Max count and uh what’s another one sum so let’s do all four of those only on this flavor rating column and when we run this we have our base flavor right here chocolate and vanilla but now we don’t have multiple columns we have one column with multiple Columns of our aggregations and it is possible to pass in multiple Colum like that so we’ll do texture rating and we’ll just come right here and do a comma then we’ll say uh uh texture rating and then a colon I don’t know why I spelled it out when I copied it but I did and then we’ll do the exact same ones and now when we run it we’re getting the exact same columns mean Max count and sum for flavor rating then mean Max count and sum for our texture rating now so far we’ve only grouped grouped on one column but we can actually group on multiple columns let’s go back up here to our data and I should have just copy this down here let’s go back down and just look at this so really we only grouped it on this base flavor but you can do multiple groupings or group by multiple columns so let’s do our base flavor which we did already as well as the liked column so we’re going to say DF do group by then we’ll do an open parentheses and then instead of just passing through one string we’re going to do a list and we’ll say base flavor oops comma and then we’ll do liked so now when it groups this it should put two groupings and let’s run this and just see oops I got to say let’s just do mean so now we have our chocolate and a vanilla and remember chocolate only had yes so that’s the only one that it’s going to group on but vanilla had a no and a yes so if we look at the vanilla we have our base flavor vanilla and then within liked we have no and a yes which can show us that within our vanilla when we group on these our NOS were really low but our yeses were really high we actually had a pretty similar rating or very close to the same rating as the ones we really liked in chocolate and just like we did above we can take this doag and I’m going to copy this and it’ll perform it on each of those rows let me close that and what did I do wrong oh I need the squiggly bracket and it’ll show us each of those so the mean Max count and sum for all of the chocolate and vanilla as well as the groupings of light yes and no now after we’ve looked at all that and that’s how I usually do it there is one uh shortcut function that can give you some of these things just really quickly and so let’s go back up here and take this it’s just called describe um and if you’ve ever done it it’s just going to give you some highlevel overview of some of those different aggregations so let’s run this and it’s going to give us our chocolate and vanilla and within each column it’s going to give us our count our mean our standard deviation I believe is what that is our minimum 25% 50 75 and 100 which is our Max then our count and our mean so a lot of those aggregate functions but the describe is you know a very generalized um function we can’t get as specific as we were with the previous ones that we were looking at but I just wanted to throw this out there in case this is something that you’d be interested in because it you know technically is showing a lot of those aggregate functions just you know all at one time hello everybody today we’re going to be talking about merging joining and concatenating data frames in pandas this whole video is basically around being able to combine two separate data frames together into one data frame these are really important to understand when we’re actually using the merge and the join right here we have what’s called an inner join and the Shaded part is what’s going to be returned it’s only the things that are in both the left and the right data frames then we have an outer join or a full outer join and this will take all the data from the left data frame and the right data frame and everything that is similar so basically it just takes everything we also have a left join which is going to take everything from the left and then if there’s anything that’s similar it’ll also include that and then the exact opposite of that is the right join which is going to give us everything from the right data frame and it’s going to give us everything that is similar but it’s not going to give us anything that is just unique to the left data frame so this is just for reference because in a little bit when we start merging these these become very important so I just wanted to kind of show you how that works visually so let’s get started by pulling in our files so first we’re going to say import and is aspd we’ll run this and then we’ll say data frame one and we’ll also have a data frame two and these are the different data frames the left and the right data frame that we’ll be using to join merge and concatenate so we’ll say data frame one is equal to pd. CSV read and we’ll do R and here is our file path so we have this lr. CSV that’s our Lord of the Rings CSV and let’s call that really quickly so we can see what’s in there and I’m having a dyslexic moment uh because it’s supposed to be read CSV uh I apologize for that but this is our data frame this is our data frame one we have three columns it’s their Fellowship ID 101 2 3 and four their first name froto Sam wiise gandal and Pippen and their skills hide and gardening spells and fireworks so this is our very first data frame that we’re going to be working with let’s go down a little bit let’s pull this down here and we’re just going to say data Frame 2 Data frame two and this is the Lord of the Rings 2 so let’s pull this one in now as you can see it’s very similar we have Fellowship ID 1 2 6 7 8 so we have three different IDs here we don’t have six seven and eight in this upper this First Data frame we also have the first name so froto and Sam or Sam wise are in the very first and the second data frame but now we have three new people barir Eland and legalis and now we have this age column which again is unique to just this second data frame first one that I want to look at is merge and I want to look at merge first because I think this one is the most important I use this one more than any of the ones that we’re going to talk about today the merge is just like the joins that we were just looking at the outer the inner the left and the right and there’s also one called cross and I’ll show you that one although if I’m being honest I don’t really use that one that much but it’s worth showing just in case you come into a scenario where you do want to do that so let’s go right down here and I want to be able to see these while we do it so we’re going to say data frame one and when we specify data frame frame one as the very first data frame when we say data frame. merge this is automatically going to be our left data frame then if we do our parenthesis right here and we say data Frame 2 this is our right data frame and let’s see what happens when we do this so what it’s going to do and this we didn’t specify this it’s just a default it’s going to do an inner join so it’s only going to give us an output where specific values or the keys are the same now you can’t see this but what is happening is is it’s taking this Fellowship ID and saying I have 101 here a 102 here this is the exact same as up here with this Fellowship ID and fellowship ID of 101 and 2 but when we look at 13 and 4 those aren’t in this right data frame and 678 is not in this left data frame so the only ones that match are this 101 and2 and that’s why they get pulled in down here but because we didn’t explicit itely say here’s what I want to join or merge between these two data frames it actually is looking at the fellowship ID and the first name so it’s taking in these unique values of froto and Sam wise which are the same in both which is why I pulled it over but really quickly let’s just check and make sure that we did it on the inner join because again we didn’t specify anything that was just the default so we’re going to say how is equal to and then we’ll say enter and if we run this it’s going to be the exact same because again the inner is the default but now just to show you how it’s kind of joining these two uh data frames together I’m going to say on is equal to and then I’m only going to put Fellowship ID so let’s run this now the first thing that you may have noticed is this first name undor X and this first name uncore Y what the merge does as kind of a default is when you are only joining on a fellowship ID we have this right data frame with fellow ship ID the left data frame with the fellowship ID if you’re just joining on these and you’re not joining on the first name and the first name then it’s going to separate those into an underscore X and an underscore Y and even though they have the exact same values since we are not merging on that column it automatically separates that into two separate columns so we can see the values within each of those columns if we went into this on and we make a list and let’s do it like that and we say comma and then we write first name oops first name and then we run this it’s going to look exactly like it did before again it automatically pulled in both of these columns when it was merging at the first time even though we didn’t write anything but if we actually write this it’s doing exactly what it was doing when we just had df2 we’re just now writing it out now there are other arguments that we can pass into this merge function let’s hit shift Tab and let’s scroll down here So within this merge function we have a lot of different arguments you can pass into it first we have this right which is the right data frame which is this data frame two then we have the how and the on which we’ve already shown how to do there’s a left on right on left Index right index not something you’ll probably use that much but you definitely can if you want to look into that and there’s all these doc strings which show you exactly how to use all of these so if you’re interested in looking at the left and the right and the left index it’s all in here but one that is really good is the sort and you can sort it saying either it’s false or true then we have these suffixes now if you remember when we took these out what it automatically did was it put in these underscore X andore Y you can customize that and you can put in whatever you’d like instead of the underscore X andore Y you can put in some custom um string for that we also have an indicator and a validates again all things that you can go in here and look at I’m just going to show you the stuff that I use the most so these things right here are things that I definitely use the most so now that we’ve looked at the inner join let’s copy this right down here and let’s look at the outer join and these get a little bit more tricky I think the inner join is probably the easiest one to understand let’s look at the outer this spelled o u t r i I don’t know why I always want to say o u t t r but let’s run this and see what we get so now this looks quite different the inner join only gave us the values that are the exact same this one is going to give us all of the values regardless of if they are the same so we have 1 2 3 4 six seven and eight so let’s scroll back up here so we have 1 2 3 4 1 2 and 6 7 and 8 so we don’t have a 105 and then if you notice in this data frame right here if the value doesn’t have so if we can’t join on the fellowship ID or the first name like legalis wasn’t one that we joined on or that has a similar value in the left data frame it just gives us an Nan which is not a number and it’s going to do that for any value where it couldn’t find that join or it couldn’t match uh something within that either ID or first name so in age we also have that for the ones that weren’t in the right data frame we only had 101 and 102 so we’ll have the age for both Frodo and Sam but for Gandalf and Pippen we don’t have their corresonding IDs and so it’s just going to be blank for Gandalf and Pippen and you can see that right here so again outer joins are kind of the opposite of inner joins they’re going to return everything from both if there is overlapping data it won’t be duplicated now let’s go on to the left join and I’m going to pull this down right here and now we’re just going to say how is equal to left and let’s run this so what this is going to do is it’s going to take everything from from the left table or the left data frame right here so everything from data frame one then if there is any overlap it’ll also pull the overlapped or the you know whatever we’re able to merge on from data frame two so let’s go back up to our data frame one and two so it’s going to pull everything from this left data frame because we’re specifying we’re doing a left join so everything from the left data frame will be in there we’re also going to try to bring in everything from the right but only if it matches or or is able to merge so just this information right here will come over we weren’t able to join on 1006 1007 or 1008 so really none of that information is going to come over so let’s go down and check on this so again we have 1 2 3 4 all of the data with this first name and skills everything is in here but then we are trying to bring over the age but we only have matches with 1,1 and 10002 so only these two values will come in let’s look at the right join CU it’s basically the exact opposite let’s look at the right and this is basically the exact opposite of the left in the fact that now we’re only looking at the right hand and then if there’s something that matches in data frame one then we will pull that in so this is basically just looking like data Frame 2 except we’re pulling in that skills column and since only 1 And1 and 102 are the same that’s why the skills values are here now those are the main types of merges that I will use when I’m using a data frame or when I’m trying to merge a data frame but there also is one called a cross or a cross join uh and let’s look at this one and this one is quite a bit different here we go let’s run this so this one is different in that it takes each value from the left data frame and Compares it to each value in the right data frame so for froto in this left data frame it looks at the froto in the right data frame Sam wise in the right data frame legalis elron and baromir all in the right data frame then it goes to the next value Sam wise does the exact same thing Roto Sam wise legalis Elon baromir and it does that for every single value so let’s go right back up here so it’s taking this this 101 it’s comparing it to 1 2 3 4 5 then it’s taking Sam Wise It’s comparing it to one two 3 4 five Gandalf 1 two 3 four five Pippen and then you kind of see that pattern and that’s what a cross join is um there are very few in my opinion reasons for a cross join although you’ll if you ever do like an interview where you’re being interviewed on python you will sometimes be asked on Cross joins but there aren’t a lot of instances in actual work where you really use or need a cross join now let’s take a look at joins and joins are pretty similar to the merge function and it can do a lot of the same thing except in my opinion the join function isn’t as easily understood as the merge function it’s a little bit more complicated um but let’s take a look and see how we can join together these data frames using the join function so let’s go right up here we’re going to say data frame one. join and then we’ll do data Frame 2 very similar to how we did it before and let’s try running this and it’s not going to work um when we did the merge function it had a lot of defaults for us let’s go down and see what this error is it says the columns overlap but no suffix was specified so it’s telling us that it’s trying to use the fellowship ID and the first name just like the join did except it’s not able to distinguish which is which and so we need to go in there and kind of help it out a little bit again a little bit more Hands-On than the merge let’s see what we can do to make this work let’s do comma and we’ll say on and let’s really quickly let’s open this up and kind of see what we have so this one has less options than the merge does we have other and that’s our other data frame we can do on and we’re going to specify you know what column do we want to join on and then we can look at how do we want it to be a left an inner and outer the same kind of types of joins as the merge then we have that left suffix right suffix and that’s right here is kind of part of the issue that we were just facing is that those columns are the same but if we say left suffix it’ll give us an underscore whatever we want to specify any string four columns that are both in the left and the right we can give it a unique name so it we’ll no longer have that issue and then we can also sort it like we did on the other one but anyways let’s go back to our on we’ll say on is equal to and then we’ll say Fellowship ID let’s try running this and we’re still getting an error it’s just not as simple as the merge so let’s keep going so now let’s specify the type so we’ll say how is equal to and we’ll do an outer and if we run this it still doesn’t work we’re still getting the exact same issue as the left suffix and the right suffix so now let’s finally resolve it I just wanted to show you how a little bit more frustrating it was but now let’s say uh L suffix is equal to and now it automatically when we did the merge did an underscore X but we can do let’s do underscore left and then we can do a comma we’ll do right suffix and we’ll say it’s equal to and we’ll do underscore right now when we run this it should work properly let’s run this so this is our output and obviously looks quite a bit different over here we have this Fellowship ID then we also have Fellowship ID left first name left Fellowship ID right and first name right so it just doesn’t look right now something I didn’t specify when I first started this because I kind of wanted to show you is that the join usually is better for when you’re working with indexes before when we were using the merge We Were Us using the column names and that worked really well and it was pretty easy to do but as you can see right here when we’re trying to use these column names it’s not working exceptionally well let’s go ahead and create our index and then I can show you how this actually works and how it works a little bit better when we’re working with just the index although you can get it to work just the same as the merge it’s just a lot more work so let’s go right down here and let’s go and say df4 so we’ll create a new data frame we’ll say df1 do set _ index and we’ll do an open parenthesis and we’ll say we want to do this index on the fellowship ID and then we’re going to do the join so now we’re going to say join so we’re setting an index so we’re setting that index on the fellowship ID now we’re going to join it on df2 do setor index and then we’re also going to do that on the fellowship ID and I’ll just copy this oh jeez I hate it when I do that okay now we also want to do and specify the left and the right index so I’ll just copy this as we do need to specify this now let’s try running the data frame four so really quickly just to recap we were setting the indexes we were doing the same thing above right we have this join we were joining data frame one with data Frame 2 now we’re joining data frame one with data frame two except in both instances we’re setting the index as Fellowship ID so we’re joining now on that index so now let’s run this and this should look a lot more similar to the merge than the join that we did above except now the fellowship ID right here is actually an index so it’s just a little bit different but we can still go in here and do how is equal to Outer oops let’s say outer so we can still specify our different types of joins or the different way that we can merge or join these data frames together we can still specify that again it’s just a little bit different and that’s why for most instances I’m using that merge function because it’s just a little bit more seamless little bit more intuitive the join function can still get the job done but as you can see it takes a little bit more work now let’s look at concatenate concatenating data frames can be really useful and the distinction between a merge and join versus the concatenate is that the concatenate is kind of like putting one data frame on top of the other rather than putting one data frame next to one another which is like the merge and the join so concatenating them is just a little bit different in how it’ll operate but let’s actually write this out and see how this looks let’s go up here and we’ll say pd. concat we’ll do an open parenthesis and then we’re going to concatenate data frame one comma data Frame 2 that’s all we have to write and let’s run this and so just like I said it literally took the First Data frame 1 2 3 4 and put it on top of the right data frame 1 2 6 7 8 so that is our left data frame this is our right data frame and they’re literally just sitting one on top of the other but just like when we merge either with a left or a right when you have these skills and there aren’t any values that populate for them it is going to say not a number and since we’re not actually joining we’re not joining on one and two even though this one and this one is the same rows it’s not populating that value because again we’re not joining these together we’re just concatenating and putting one on top of the other now if we go into this concat we say shift tab there are a lot of different things that we can do which if you remember the zero axis is the left-and index and the axis of one is the top index which is the columns so you can specify that and we can also do joins and this is the one that I’m going to take a look at but there are other ones that you can um look into as well but let’s look at join let’s do comma and we’ll say join is equal to and let’s do an inner join so let’s see what happens with this as you can see it is only taking the columns that are the same that’s what this inner is doing it’s joining these columns together and the ones that were different they didn’t take because again we weren’t able to combine them they aren’t similar between both data frames Let’s do an outer and now it’s going to take all of them and like I said that’s doing this on these colums right here but we can also do it on this axis as well so let’s go ahead and say a is equal to 1 and when we run this now it’s joining us on this Index right here of 0 1 2 3 4 so now these ones are being joined together and it’s putting it side by side much like a merge would so that’s how concatenate works and I’m going to show you one more thing and again it’s not up here in this you know title because it’s not one that I recommend but is one called append the append function is used to append rows from one data frame to the end of another data frame and then we can return that new data frame and so let’s do data frame 1. append do an open parenthesis and we’ll say data Frame 2 very similar to how we’ve been doing other things and let’s run this and as you can see this is almost exactly like how the concatenate did when we first did it but if we read kind of this warning it’s saying the frame. append method is deprecated and will be removed from pandas in the future version use pandas do canat instead so it’s literally warning us you know a pend is on its way out if you want to do exactly what you’re doing right here go and try concat or concatenate because that’ll do the exact same thing so I’m not really going to show you any other variations of a pend because there’s no reason it’s going to be on its way out in the next version so that is our video on merge join and concatenate and aend as well uh in pandas and I hope that that was helpful I hope that you learned something I mean this stuff is really important because often times you’re not just working with one CSV or one Json or one text file you’re working with multiple of them and you need to combine them all into one data frame and so this is a really really important concept and thing to understand hello everybody today we’re going to be building visualizations in pandas in this video we’ll look at how we can build visualizations like line plots Scatter Plots bar charts histograms and more I’ll also show you some of the ways that you can customize these visualizations to make them just a little bit better with that being said let’s go right over here start importing our libraries and we’ll start with importing pandas SPD and this one is really all you need to actually create the visualizations in pandas but we may get a little bit crazy uh and so we’re going to do a few different ones as well like import numpy as NP and then we’re going to do import matplot li. pyplot as PLT now I may or may not use this I just you know when I get into visualizations I may want to change some different things so we’re going to at least have them here in case we do want to use them let’s go ahead and run this so now let’s our data set that we’re going to be using so let’s say data frames equal to pd. read CSV and let’s get this in right here now we’re going to be doing these ice cream ratings let’s take a look at this really quickly now these values are completely randomly generated they are not real in any way um but that’s what we’re going to be using because I just wanted something kind of generic something that wouldn’t be too crazy confusing just something that we could use and you guys can understand that there’re just numerical values vales but let’s also set that index really quick so we’ll say data frame. setor index and then we’ll say date and then we’ll say that’s equal to the data frame and we have this date column right here as our index so we have uh January 1st second third fourth and then we have our ratings right here and again these are all just integers and they’re pretty easy or really easy to demonstrate how you can visualize these so that’s why we’re using it today so the way that we visualize something in pandas is use something called plot so let’s just take our data frame we’ll do data frame. plot and we’ll do our parentheses now let’s go in here really quickly let’s hit shift Tab and this is going to come up and this is pretty important because this kind of is going to tell us what we can do within this plot and unfortunately there isn’t like a quick overview we just have this dock string but we have our parameters right here these are what we can pass in to kind of customize our visualization so the data is going to be our data frame then we have our X and Y labels we can specify the kind and this one’s important because we can specify what kind of visualization do we want we can do a line plot horizontal a vertical bar plot histogram box plot and then a few others including area Pi density all these other things we can also specify if we want it to be a subplot and a lot of these things that I’m specifying you know I’m going to show you how to do you can use uh different indexes you can add titles add grids Legends Styles all these different things I mean you can go through here because there are a lot but you can specify and you know customize all of these things we won’t be going into all of them but I will show you some of the ones that I probably use the most and that I think are the most useful to know right away so let’s get out of here and we’re just going to do DF do plot and when we run this we’ll get this right here and that was super super easy created a line plot by literally doing just about nothing um but by by default it’s going to give us a line plot so if we come up here we say kind and let me get that out of the way is equal to line and we run this so by default without us actually having to input anything it’s giving us that line plot as a default so uh we can specify it’s a line plot as you can see we already have all of our data right here we didn’t have to specify anything it kind of automatically took it in it is visualizing all three of these columns and it has this little um Legend right here and we can specify where we want that uh there is an argument to be able to do that it also gave us these tick marks of 2 4 6 8 10 again it read in and it said it’s only going from 0.0 to 1.0 that is kind of the peak and so it kind of automatically gave us these ticks for us again that’s another thing that you can specify we can make it go up to 2 5 10 1,000 whatever you want it to be and then we’re doing this based off of this date value right here here really quickly I wanted to give a huge shout out to the sponsor of this entire Panda series and that is udemy udemy has some of the best courses at the best prices and it is no exception when it comes to pandas courses if you want to master pandas this is the course that I would recommend it’s going to teach you just about everything you need to know about pandas so huge shout out to you me for sponsoring this Panda series and let’s get back to the video if we wanted to break these out by the actual column we could go in here and say subplot is equal to true and it’s actually subplots whoops and now we can run that and then we can see each of those columns being broken out by themselves instead of them all being in one visualization it’s now uh three separate visualizations now let’s go right over here we’re going to get rid of the subplots I want to show you just some of the different arguments that you can use to make this look nice uh because I don’t want to do this on every single visualization I just want to show you what you can do so we have this one right here we can add a title notice there’s no title or anything really telling us what is so we can say comma idle and we’ll say ice cream ratings if we run this we now have this nice title right here now we can also customize the labels or the titles for the X and Y AIS it automatically took this date which is right here this is our date index it automatically took that for us but we can customize that if we’d like to all we have to do is comma and then we’ll say x label is equal to and so our X is the this date one right here and we can say daily rating and then we can do the Y label we’ll say y label is equal to and for this one we can say scores hope you cannot hear my dog in the background cuz they’re being insane uh but let’s go ahead and run this and now we have these daily ratings on the x- axis and on the Y AIS we have scores now let’s go right down here and start taking a look at our next kind of visualization which is going to be a bar plot so we’ll do DF do plot we’ll do kind is equal to and for this one we’re going to say bar now this is what your typical bar plot will look like and a lot of the arguments that we just did on the line plot you can also apply to this bar plot something that’s unique to the barplot is that you can also make it a stacked bar plot all we have to do is go in here we’ll say comma and we’ll say stacked is equal to true so now let going to make it a stacked bar chart instead of just you know your regular bar chart let’s go ahead and run this and as you can see this is now stacked on top of one another with each of these columns all representing the values that they have now we don’t always have to do every single column we can also specify the column that we want so let’s take the flavor rating for example we could do flavor oops flavor rating good night flavor rating and then it’s only going to take in that flavor rating column and if you notice we don’t have a legend that’s only when you have multiple values which we are only looking at this one column so all the values are right here now in this bar chart it automatically defaults to a vertical bar chart but you can change it to a horizontal bar chart let’s go ahead and take a look at how to do that bring back all of them we’ll do DF do plot Dot and then we’ll say barh and I don’t know if I can keep in that kind equals bar let me run this yeah I need to get rid of that because the bar. H is its own um this is its own function so now I’m going to run this it should just have a stacked bar chart except now it should be horizontal so now you can see this worked properly it’s basically the exact same thing as a vertical bar chart just now horizontal which may look better especially depending on if you have values like this or you know something else that just looks better being horizontal now the next one that we’re going to take a look at is the scatter plot so we’re going to say DF do plot. scatter and if we run this we’re going to get an error what we need in order to run this properly is we need to specify the X and the Y AIS in order for this scatter plot to work so let’s go here and we’ll say x is equal to and we can take any of our columns that we have up here so we’ll say x is equal to texture rating and then oops Y is equal to we’ll do overall rating now when we run this it should work properly let’s go ahead and take a look now if we go in here and we do shift tab we can also see some other things that we can specify so let’s go right down here so we have our X and we have our Y and those are the ones that we just did we can also pass through an S which is going to tell us or or change the size of the actual dots right here in our scatter plot then we can also do a c which is the color of each point let’s start with the S let’s say s is equal to and let’s just do 100 let’s see what that looks like so we have a much larger number let’s do 500 and see what that looks like so we can make these much larger on our visualization depending on what you’re looking for we can also look at the color let’s put comma C so for color we can say color is equal to and let’s do uh yellow let’s see if this works so now we’ve changed it to Yellow that looks absolutely terrible but it does work now let’s move on to the histogram histogram is always a good one it’s very similar to something like a bar chart but what’s great about a histogram is you can specify the bins um so let’s go ahead and say DF dolot doist then we’ll do an open parenthesis and let’s go ahead and hit shift tab in here take a look at this one as well so some of our parameters are the actual columns or the data frames that we want to pull in we can choose the bins and they have a default default of 10 in here and so let’s take a look at how this works so we’ll just run this as it is so this is by default what this histogram is going to look like let’s go ahead and specify our bins we’ll just say it was 10 by default let’s just do 20 see what that looks like so there are smaller columns right off the bat and remember histograms are really good for showing distribution of variables you know that’s really what a histogram is for but of course since these are completely random numbers this histogram isn’t going to make any sense at all but you can at least kind of see visually how it works and if I didn’t mention it before which I should have the bins represent how many kind of tick marks are down here so if we just do one it’s only going to be one very large uh you know histogram we could even go further down from 10 and do five so now there’s only one 2 3 four five so the distribution gets smaller and things get more compact as you spread it out again like we did 100 it’s going to spread it out a lot um and this is what it shows you know it’s showing the distribution of those bins across however many you want so the 10 by default you know it usually is pretty good for a lot of different things now let’s go down here and look at the box plot and the box plot is a pretty interesting one let’s go ahead and visualize it really quickly and then I’ll kind of explain how this one works let’s do DF dobox plot that’s r on this and really what we’re looking at is some different markers within our data this line right here is the minimum value within that column we also have the bottom of the box which is the 25th percentile of all the values within just this column this is 50% then we have 75% and then up here we have our maximum value so I can take a glance at this and see that we have a low minimum a high maximum and it definitely skews towards the lower range whereas if I look over here we have a lower minimum and a higher maximum and you can see that this medium point is at 6 versus 04 over here so this skews a lot higher now let’s go down here and take a look at an area plot we’ll do DF do plot. area and let’s just run this this is what we’re going to get by default now something I wanted to show you earlier I just haven’t gotten around to I want to show you something called Figure size or fig size um so for this it’s know it’s just looks small looks a little bit cramped let’s say we want increase the size of this and we’ll say fig size oops fig size is equal to and let’s just do a parentheses and say 10 comma 5 that should be pretty large this is going to make it a lot larger just something I wanted to throw in there I look at these area charts as pretty similar to like a line chart if we went and compared those be pretty similar um but they’re different visually and you know you absolutely can use these for different types of visualizations but I don’t use this one a lot if I’m being honest that’s why why it’s kind of towards the end of the video but you definitely can do it let’s go on to our very last one of the video that’s going to be the beautiful pie chart let’s say DF plot.py do an open parenthesis and let’s run it we’re going to get this error that’s because we need to specify what column we’re working with here so let’s just say the Y and that’s what we need me open this up for us right here we have our Y and this is our our label or our column that we’re going to plot that’s really all we need so we can just say Y is equal to flavor rating oops flavor rating let’s run this now we get this visualization right here let’s make this one a little bit bigger big size is equal to 10 comma 6 now it’s a little bit bigger it definitely depends so this Legend is going to autop populate you know you can make this as big as you want and obviously it’s going to look a little bit better if you do it larger and these colors autop populate now you can customize these colors although I found these ones to be just when you have a lot of them it’s harder to customize them as easily but you know definitely look into it these are things that everything in here is almost something that you can customize in some way although it does get a little bit tricky you definitely have to do some research and some Googling around just to kind of figure out how to do those things now one last thing that I wanted to show and something you know I could have probably done at the beginning um is you can actually change what visual this is and we can do that pretty easily within mpot lib there are different styles um and so let’s go right here let’s add a new row a new cell and we’ll say print and we’ll do PLT so that’s that map plot lib right here we’ll do PLT do style. available and what this is going to do whoops what this is going to do is show us all these different types of uh stylings that you can do to kind of change up this visualization then once we find the one that we like we’ll just do PLT do style. use and then in the parenthesis we’ll just specify which one we want now there’s all these Seaborn ones and Seaborn is a really great um really great Library let’s try Seaborn deep I haven’t tried this one at all let’s go ahead and try this and just changes some of the colors some of the visuals we can try something like like 538 let’s try this that looks quite a bit different and let’s try something like um classic I don’t know what this one looks like let’s just try it so you can try out all these different styles find one that you’d like find one that you think looks really nice and you can run with it through all your visualizations hello everybody today we’re going to be cleaning data using pandas now there are literally hundreds of ways that you can clean data within pandas but I’m going to show you some of the the ones that I use a lot and ones that I think are really good to know when you are cleaning your data sets so we’re going to start by saying import andas as PD and we’re going to run that and now we’re going to import our file so we’re going to say data frame is equal to PD so that’s pandas do read uncore and we actually have this in an Excel file so we’ll say read oops say read Excel do an open parenthesis and we’ll do R and then we’ll paste the path right here and now we’re just going to call that variable so we’ll call data frame and we’ll actually read it in and look at the data so let’s scroll down here and let’s take a look at this data frame or this Excel file that we’re reading in so right off the bat we have this customer ID that goes from 101 all the way down to20 we have this first name and everything looks pretty good here except in this last name column uh looks like we have some errors we have some forward slashes some dots some null values um so definitely going to have to clean that up because we don’t want that in the data we have a phone number and it looks like we have a lot of different formats um as well as Naas not a number um just lots of different stuff so we’re going to need to standardize that so clean it up and then standardize it to where it all looks the same um we also have address and it looks like on some of these we just have a street address but on some of the other ones we have like a street address and another location as well as a zip code in some of them so we’ll probably want to split those out we have a paying customer uh which is yes and Nos and some of those are not the same so I have to standardize that we have a do not contact kind of the same thing as the paying customer and we have this not useful column which we’ll probably just want to get rid of okay so the scenario is is that we got handed this list of names and we need to clean it up and hand it off to the people who are actually going to make these calls to this customer list so they want all the data in here standardized and cleaned so that the people who are making those calls can just make those calls as quickly as possible but they also don’t want columns and rows that aren’t useful to them so things like this not useful column we’re probably going to get rid of and then ones that say do not contact if it says yes we should not contact them we probably will want to get rid of those somehow so that’s a lot of what we’re going to be doing to clean this data set normally the very first thing that I do when I’m working with a data set most of the time except very rare cases when you’re actually supposed to have duplicates is I actually go and drop the duplicates from the data set completely all you have to do for that is say DF do dropcore duplicates so they make it super easy for you let’s just run it and up here is our original data set we have this 19 and 20 and those are obviously duplicates they have the exact same data it’s just a duplicate row that we need to get rid of if we look right down here we we no longer have that 20 we now just have one row of Anakin Skywalker and of course we want to save that so we’re just going to say DF is equal to and DF so now it’s going to save that to the data frame variable again and now when we run this our data frame Now does not have any duplicates that’s definitely one of the easier steps that we’re going to look at uh things are going to get quite a bit more complicated as we go but I’m starting out you know kind of simple so that we can kind of get a feel for it then we’ll start getting into the really tough stuff so the next thing that I want to do is remove any columns that we don’t need I don’t want to clean data that we’re not going to use so if we’re just looking through here you know they may need you know first name last name phone number for sure address might give them some information of where they’re calling to or time zone so we want that this not useful column looks like a pretty good candidate to delete and it’s very easy to do that we’re going to go right down here and we’re going to say DF do drop we’ll do an open parenthesis drop just means we are dropping that column and we can specify that by saying columns is equal to and then we’ll paste in that column that we want to delete so let’s run this and see what it looks like and it literally just drops that column exactly like we were talking about it no longer has that column again we want to save that we can always do in place equals true um if you follow this tutorial series you can always do in place equals true and that’ll save it as well but just for our workflow most of the time I’m going to assign it back to that variable um just for keeping it the same really quickly I wanted to give a huge shout out to the sponsor of this entire Panda series and that is udemy udemy has some of the best courses at the best prices and it is no exception when it comes to pandas courses if you want to master pandas this is the course that I would recommend it’s going to teach you just about everything you need to know about pandas so huge shout out to UD to me for sponsoring this Panda series and let’s get back to the video now let’s kind of go column by column and see what we need to fix and we’ll start on this left hand side this customer ID to me looks perfectly fine I’m not going to mess with it at all the first name at a glance also looks perfectly fine I don’t see anything wrong with it visually which is a good thing um although sometimes that can be deceiving and that can cause errors down the line but we’re not going to uh assume that there are errors in here now let’s look at this last name now the last name obviously I’m I’m seeing some obvious things things that we talked about when we were first looking at this data set we have this forward slash which we definitely need to get rid of we have null values so not a number right here we have some periods as well as an underscore right here so all those things I think we should clean up and get rid of it so that when the person is making these calls you know it’s all cleaned up for them so how are we going to do that we can actually do this in several different ways but let’s just copy this last name the first one I’m going to show you is strip and we’ll write it kind of like this we’ll say data frame and then we’ll specify the column that we’re working with because we don’t want to make these changes or strip all of these values from everywhere we only want to do it on just this column if we do this and we don’t specify the column name it will apply to everywhere so if we’re trying to do these yeah let’s say bum these underscores maybe that would mess with something else in another column and we don’t want that so we just want to specify just this last name so let’s go last name. string Dot strip now what strip does and let’s see if we can open this up really quickly no we can’t um but what strip does I was just I was hitting shift tab in here to see if it could bring up um you know some of the notes on it but what strip does is it takes either the left side or the right side well L strip takes from the left side R strip takes from the right side and strip takes from both but you can strip values off the left and the right hand side and we can specify those values now for what we’re doing in this column we can just use strip because as you can see this forward slash these dots as well as this um underscore are all on the far sides if there was a value Like swancore Son the strip wouldn’t work at all because it’s not on the outside of the value of the word so we can use strip I’ll also show you how to use replace and replace is another really good option for things like this but let’s start with strip and just see what it looks like and see if we can get what we need done done so let’s just run this for now see what happens so it looks like nothing has changed because again we’re not specifying any specific value just by default it’s only taking out white space so like spaces that shouldn’t be there that’s what it does by default now we can specify within this exactly what values we want to take out so let’s go ahead and do that let’s say left strip and let’s try to take out these dots real quick so we’re just going to do a parenthesis dot dot dot now let’s run this and see what it looks like for this one Potter it is now gone so those three dots were there before let’s just show it so they were there and then when I ran it like this now they’re gone that’s what the L strip does it takes it only off the left hand side now we can also do a forward slash so we’ll do something like this and it’ll get rid of the white but as you can see now we aren’t taking out these three dots so they’re still there now is it possible to do something like this where we put these values inside of a list um let’s try it so we’ll say just like this one two three let’s run it and no it doesn’t um this L strip actually sits within the the realm of regular expression so if you’ve ever worked with regular expression you know it gets very complicated very complex so you want to keep it kind of simple especially with these values where we’re just taking a few out so what we’re going to do is we’re going to do dot dot dot and we’re take it out one by one now in order to save this because we want to save this we want to take out that value we don’t just want to say data frame equals because that would be uh very bad what this would say is now this data frame is only equal to these values that we’re seeing right here we want to only apply it to this column so we’re going to go like this so now when we do it and then we call the entire data frame it’s only applying this to this one column the last name column so let’s run it and now when we go down to Potter right here it’s cleaned up so we’re going to do the same thing but for those other values and we’ll do it just like this we’ll do a forward slash and it’s a left strip and then we’ll do I’ll do the left strip on this underscore to just to show you that it won’t work and then we will go on from there so it’s not pulling it because we’re looking at the leftand side only we need to use R strip so now let’s use R strip and now that looks perfect as no underscore so that’s how you can use strip for either the left side the right side or just Strip by itself which covers both sides now I showed you all of that because I am going to show you a different way to do it um and I apologize because I somewhat lied to you earlier um let’s run this right here actually we’re just going to pull it in like this we’re going to remove the duplicates again bear with me we’re going to drop that column and then now we’re sitting with that data frame again with those exact same mistakes I just wanted to reset it for a second there is a way uh that you can do this and I just wanted to you know kind of show you how you can do it you can do this right here and we’ll say so we’re now again we’re just looking at this column just this column and we’re using strip and let’s get rid of R because we want to do apply it to everywhere you can input all of those values individually and it will clean it up so let’s say we want to get rid of numbers we’ll do 1 2 3 then we can do the dot so that’s going to be for our period or for our dot dot dot Potter we could also do the underscore and we can do the forward slash so we put it all in one string right here now let’s take a look at this we’ll get rid of this really quickly now let’s take a look and all of them were removed I showed you how to do it before because that’s at least how my mind would think about it I’d think oh I can put it in a list and run it through this L strip or this right strip and it would work um but that’s not how strip works you have to kind of combine it all into one value so uh yes I deceived you I apologize but now when we call data frame and we assign it to that column so the last name column or assigning what we just did to this last name column everything should look perfect and it does so our customer ID first name last name are all cleaned up now we’re going to come to a much more difficult one this is probably if I’m being honest the hardest one I said we were going to work up but this is probably the hardest one of the whole video working with phone numbers and look at all these different types of of formats I mean it is um it’s not going to be fun and imagine you know there’s 20,000 of these you can’t just go and manually clean those up you need something to kind of automate that so that is what we’re going to do so let’s go right down here copy the data frame and I’m going to pull it right here so now we need to clean up this phone number what we want is it all to look exactly the same unless it’s blank and we’ll keep it blank we don’t want to populate that data but we want all of them to look exactly like this one and what we’re going to do is right off the bat we’re going to take all of the non-numeric values and just completely get rid of them strip it down to just the numbers so this 1 23- 643 or forward slash will just be the numbers same with these bars and these slashes and everything all of these will just be numeric then we’ll go back and reformat it how we want to format it which will look exactly like this one um but we just want to do it for the entire column so let’s go right up here and we’re going to try replace for the first time so let’s do phone number just oops that’s not what I wanted so we’re going to do a bracket say phone number do string. replace just like we did before now we’re going to use some regular expression in here and I’ll kind of do a really high overview although I’m not going to dive super deep into the regular expression then we’re going to do a parenthesis and within there we’re going to do a bracket um I can’t remember what this is called is it called a carrot I think it’s called a carrot uh B I’m just going to call it that it may not be correct but I think it’s a an upper Arrow so it’s an upper Arrow a a d oops A- Z A- Z and then 0-9 now at a super high level what that character that first thing is doing it’s saying we’re going to return any character except and then we specify anything A to Z A to Z upper or lowercase and then actually I think this should be like this A to Z uh and then 0 to 9 so any value like a BC One Two Three those are not going to be matched it’s going to match all of them except these values and then we’re going to replace them by saying comma and we’re going to replace them with nothing so this is just an empty string so literally we’re taking everything that is not an A A B C A 1 two 3 so a letter or a number we’re replacing all of that and then we’re replacing it with nothing so let’s run this and see what it looks like and it looks like that worked properly now we do have this na because we had an n- a for I don’t remember maybe that was Creed Bratton um but it worked for basically everything else we’re going to go through the entire process and then at the end we’ll remove any values we want them to just be completely null we we don’t want them to even see n an and wonder what that is we just want it to be blank and we’ll do that at the very end so now that we know that that worked let’s assign it we’ll do DF phone number is equal to and then we’ll say data frame and this looks a lot more standardized than it did before already but now what we want to do is try to format this um and I’ve done this many many times I always use a Lambda you can definitely use a for loop I just I don’t do it that way myself so I’m going to show you how to do it using a Lambda let’s get rid of this and we’re going to say thef phone number we’ve already done that I’m just going to get rid of it now we’re going to say DF phone number then we’re going to say do apply we’ll do an open parentheses and then this is where we’re going to build out our Lambda so we’ll say Lambda X colon now this is where we’re going to kind of format it so what I want to do is I want to take the first three strings 1 2 3 then I want to add a slash and then the next three strings add a slash or a dash uh and then that be the value that’s returned so it’s not super difficult we’re just going to do X then a bracket let me get rid of that an X and then a bracket and then we want the 0 to three so it goes 01 2 so 0 1 2 it doesn’t include the three it goes up to three so 0 1 2 that’s our third first three values then we’ll do plus and do a quote and do a dash so this is our first kind of sequence and I’m just going to copy this we’ll do plus and instead of three or we are going to start at three because now it’s inclusive so we’re going to go from three and we’re going to go all the way up to six so it should be three four five our next three values then we have a dash and we’ll copy this and we’ll say plus and now we go from six all the way to 10 now let’s try running this and as you can see we get an error now I already know what the error is float object is not subscriptable which means we’re trying to um basically look at it like a string right now it’s not a string it’s actually a number so let me get rid of this for just a second I’ll going show you what it’s talking about so right now we have values that are floats and values that are strings or not even a number so we have values that are strings or not a number so if we want to actually look through it like kind of like indexing if we want to do that they all have to be strings so we need to change this entire column into Strings before we can apply this um formatting now when I was creating this if I’m being honest my first thought when I was doing this was to do it like this string DF phone number um let’s just run that this is what the values look like um and I don’t remember why or why it was doing this I can’t I can’t remember but I looked into it quite a bit and I was like oh I need to apply this string converting it to a string on each value not the entire row or not the entire column so how we can do that is actually fairly easy because we’ve already done a lot of the heavy lifting we’re just going to copy this and we’re going to say x so string of X and again Lambda is like a little anonimous function so you could do this by saying for um X in this uh column we could do a for Loop and then say for every X it equals the string of X and then it changes it to a string but a Lambda just does it a lot quicker um so we’re going to say so let’s do that really quickly and all of our values look exactly the same and that’s how we want it so we’re just going to copy this apply it good and now we’re going to take this and we’re going to run this again just ignore all my commented out stuff pretend I don’t have that um so now when we run this it should work there we go now if we look at these numbers 1 2 3- 545 D 5421 and it does that for every every single one where there’s values even when there’s n n or na it’s still adding those values but we expected that so let’s apply it says equal to and then we’ll look at the data frame and this looks almost exactly what we’re hoping for we just need to get rid of these so this n- Dash and this na Dash we need to get rid of those and that is super easy to do um we’re just going to say so now that we’ve done it and we I me it out we’ll say DF and let’s copy this ignore the messiness I do apologize for that it’s very messy um but if you’re following along with me you get what we’re doing so DF phone number so only on the phone number say string. replace parenthesis now we can specify this value so we want to take this exact value and replace it with nothing and let’s just see if that does work it does now we have these Nas and so let’s actually I’ll paste that right down here we’re going to do this is equal to and then we’re just going to take this entire string put it right here and put this value as our what we’re looking for and then replacing and then when we call that data frame it should work properly and it is perfectly cleaned so so we have every single value all the exact same they don’t have different characters or different um you know formatting and we got rid of all the ones that we don’t have or don’t need um all the ones that were just random values so this column is now completely cleaned up again definitely one of the more difficult ones um one that I’ve done a thousand times I’ve had to work with a lot of phone numbers and stuff like that this one does get very tricky especially if you have like a plus one which is like an area code um that can get tricky as well but this is on a kind of a high level this is how you can do that and it’s pretty neat how you can actually you know clean up and standardize those phone numbers so let’s go right down here uh let’s run it the next thing that we’re going to look at is this address now let’s just pretend that the people who are on the call center want all these separated into three different columns they can read it easier see what the ZIP code is where they live uh you know whatever they want it for let’s just say we want to do that and this is you know again for this use case it may not make sense but you have to do this I do this all the time um you need to split those columns now luckily all of these things are separated by a comma so we can specify that we’re going to split on this column and then we’ll be able to create three separate columns based off of this one column which is exactly what we want then we can name it as well and we can do that very easily by using this split so we’re going to say DF and we want to specify oh jeez not again so we want to specify that we’re looking at the address then we’re going to say string. split we’ll do an open parenthesis now the very first value that we need to specify is what we’re splitting on so we want to split on the comma so we want to specify that and then we need to specify how many values from left to right it should look for now we’ll just start with one and then we’ll go from there let’s just see what this looks like so it doesn’t really look like it did anything let’s do two well let’s go back to one and then let’s say expand equals true when we expand it it’s actually going to uh separated I believe okay so we’re expanding now we’re only doing this with one comma so we’re only looking at the very first comma and splitting it but in some of these well just in one there is an additional comma so we should do it up to two let’s do this okay so now we have three columns if we just save it like this it’s going to give us these 0 one2 these basically these indexed values for these columns and we don’t want that we want to specify what these actually are and we can do that by saying DF and let me just do is equal to we’ll do bracket and then within there we’re going to specify our list so we have three of them that we have so I’m going to do um the first one this is the street address so we’ll say street address the next one is and it’s sh is not a state uh but these all are state so I’m just going to say State and then for the very last one that looks like a zip code so we’ll say zip and we’ll do code in fact I also want to do streetcore address um so what this is now going to do is these three columns are going to be applied to these three names and they’ll basically be appended it’s doesn’t replace the address we’re not saying DF address equals the DF address we’re not replacing it we’re now creating different columns so let’s run it and then let’s also call it so they’re right over here on this right hand side I couldn’t see them at first but it did exactly what we needed it to do so now if we wanted to at the very end if we want to we’re not going to we could just delete this address and keep the street address the state and the zip code another really common thing that you can do this happens often again with like first name last name well you’ll have Alex freeberg but it’s Alex comma freeberg or Alex space freeberg and you can separate those out into different columns now the next one that we want to look at is this paying customer and the paying customer and do not contact are very similar um in the fact that it’s yes no NY yes no NY um and so let’s go right on down here and we’re going to say DF Dot and we we want to just replace these values as all yeses or all NOS but just with the same formatting um just to keep it consistent so let’s make anything that’s an N into a no anything that’s a a y into a yes I like it spelled out so let’s change anything that’s a yes into a y and anything that’s uh a a no into an N that’s usually how I do it just saves on data because it’s less strings although it’s be often very minimal um but let’s specify the in customer we see say DF bracket Pay customer then we’ll do string. replace so now we’re just going to look for those specific values so if it’s a y oops a capital Y then we’ll say yes now let’s run it and now we have no more y we now just have yeses although now these are yes yeses okay we don’t want to do that let’s do if we’re looking because it’s taking it’s literally looking up here and saying okay there’s here’s a y um let’s change the let’s change that Y into a y so now it’s doing ye uh we don’t want that so let’s look for the yes and change it into a y now when we run this that looks a lot better um so we’ll do D of paying customers equal to and then we’ll copy this we’ll do the exact same thing no and N then let’s call it and now that entire column looks really good except for that value right there but I’m going to leave that because I’m just going to apply it to the entire thing all at once to get rid of those at the end instead of just going column by column and then it’s literally going to be the exact same thing so I’m not even going to scroll down whoops I’m just going to put it right up here because this is the exact same thing I’m going save us all some time and when we run this this looks exactly like what we’re looking for again some not a number of values but we can get rid of that in just a second by doing our place over the entire data frame and that is basically the end of cleaning up individual columns now let’s go right down here we’re going to say DF do string. replace and then we’ll first do these values oops so we’ll do oops let me do that there we go and replace that with nothing let’s just see what it looks like oops data frame object has no value string well that’s because we were looking at columns before yeah I think I just need to get rid of this string we’re not looking it we’re just doing it across the entire data frame now let’s try that okay that worked appropriately and we’ll just say data frame is equal to and then we’ll copy this and we’ll do the NN as well and we’ll [Music] do and now when we do this it is not going to replace these because these aren’t actually a value because we’re looking for that string we actually need to use and I I completely forgot this I’m not going to lie to you um let’s get rid of this uh to get rid of those values because it’s literally not a number there it is technically empty um I forgot we can do um or we could not even specify it we’ll do DF do fillna so we’re going to fill these values if there’s nothing in them we’re going to fill it and we’re going to say blank and when we run that every value that doesn’t have something in it is going to show up blank even over here where we only had a few all of them throughout the data frame if it doesn’t have a value it is now blank so let’s apply that and and we’ll run this and now all of our cleaning we’re actually cleaning up the individual columns is completely done we’ve removed columns we’ve split columns we’ve formatted and cleaned up phone numbers we’ve also taken values off of first name or or this last name column and then we formatted in just kind of standardized paying customer and do not contact now they also asked us to only give them a list of phone number numbers that they can call so if we take a look some of these do not contacts are why which means we cannot contact them and then there are some that don’t even have phone numbers so we don’t want to give the people the call center numbers that or or people who don’t have numbers so we want to remove those now there’s a few different ways that we can do this but let’s start with and we’ll just go by do this do not contact it seems like the most obvious one now if it’s blank we want to give them a call we only want to not call them if they’ve specifically said we cannot call them so if it’s y we’re not going to call them so what we need to do it’s not anything like this we probably need to Loop through this column and then look at each row that has a value of this and drop that entire row uh and we probably will’ll need to do that based off this index instead of doing it based off just this column uh that may not make sense but let’s actually let’s actually start writing it so we’ll do 4X in and we need to look at our index so we’re just going to do let’s do in DF do index and we’ll do a colon enter and then we want to look at these indexes how do we look at these indexes we use lock that’s going to be DF do Lo and then we need to look at the value which is this x right here so each time it looks at the index it’s looking at the value but we want to look at the value of this column do not contact I don’t know if I copied this before let me copy it we only want to look at the value in this one column if we didn’t it would look at um a different value so we don’t want that so we’re looking at just that value if it’s equal to Y so if this value is equal to Y then we want to drop it so we actually need to say if so if this value X in this column is equal to Y then we want to do DF do drop and then we’ll say x and we I think we have to say in place equals true here otherwise it won’t take a fact um otherwise have to say like DF is equal to DF I don’t I don’t want to start messing with that let’s just do in place equals true um and let’s see if that works I I can’t remember if this is going to work or not invalid syntax okay neon and now let’s try to run this okay okay yeah if we look at our index we can already tell that there are ones missing the one the one is missing the three is missing um let’s see and the 18 is missing so we already got rid of those values and you can you can see that there’s no y’s in here anymore which is really good we can if we want to and we probably should we should probably populate that um really quickly um let me just go up here really quick I’ll copy this we probably should populate that and I didn’t plan on doing this so um if it’s blank oops it’s blank give it an n and we want to attribute it to do not contact do not contact whoops let’s see if that works and we probably need to do dot string let’s just see if it works so if it’s blank dude okay I don’t know why it’s giving us a triple n maybe there’s maybe I need to strip this or something uh okay never mind let’s not do that but now we basically need to do the exact same thing for this phone number um because if it’s blank we don’t want them calling it um so we can copy this entire thing go right down here and but now we’re looking at phone number so now we’re looking just at the values within phone number and we only want to look at if it’s blank so if it literally has no value we want to get rid of it let’s run this and see if it works again it should good and now our list is getting much smaller so you can see in our index a lot of um those rows were removed and and okay good actually this worked itself out because these all have ends um so right now we’re sitting really good everything looks really um standardized cleaned everything looks great I might drop this address if you want to you can drop this address but besides that this is all looking really good this pain customer doesn’t uh the yes and knows aren’t really anything um now we could and we probably should before we hand this off to the client or the customer call let’s we probably should reset this index because they might be confused as why there’s numbers missing or you know they might use this index um to show how many people they’ve called or I don’t know something like that so let’s go right down here we’re going to say DF Dot and then we’ll do reset index and let’s just see what this looks like um it does work but as you can tell it didn’t uh get rid of that index completely it actually took the index and saved that original one we do not need to save that whoops let’s put it right in here now we’re just going to do drop equals true and when we do that it just completely resets it drops the original index and gives us a new index and that is what we want let’s do DF equals and this is our final product now one thing that I you definitely could have done here um and I made this a little probably more complicated than it needed to be um that was just how my brain was working at the time when I’m you know typing this out we could could have done DF do drop an a um which is literally going to look at these null values um before we couldn’t do that with this one because these aren’t we’re not looking at na we’re looking at y’s so we couldn’t do that but because we’re looking at null values we could have also done drop na um and done subset is equal to and then done it just on this phone number and then done like this and done in place equals true so we could have also done this and then said DF equals um I can’t I mean I can run it it’s just not going to do anything I can run it on the different column but that’ll me mess everything up but this is another way you can do it and I’ll just save it in case you want to um I’ll say another way to drop null values there you go and that’ll just be a note for us in the future um but this is our final product it looks a lot different than when we first started I mean we had mistakes here completely different formatting in the phone number different address everything that we just talked about um and this looks just a lot lot better and you can tell why it’s really important to do this process because again we’re working on a very small data set I I purposely you know created this data set with these mistakes because you know when you’re looking at data that has tens of thousands 100 thousands a million rows these are all things that are going to be applied to much larger scale and you won’t be able to as easily see them um you’ll have to do some exploratory data analysist to find these mistakes and then you’re going to need to clean the data or doing it at the same time when you’re exploring the data uh so you’ll clean it up as you go but these are a lot of the ways that I clean data a lot of the things that you can do to make your data just a lot more standardized a lot more um visually better and then it really helps later on with visualizations and your you know actual data analysis so hello everybody today we’re going to be looking at exploratory data analysis using pandas exploratory data analysis or Eda for short is basically just the first look at your data during this process we’ll look at identifying patterns within the data understanding the relationships between the features and looking at outliers that may exist within your data set during this process you are looking for patterns and all these things but you’re also looking for um mistakes and missing values that you need to clean up during your cleaning process in the future now there are hundreds of ways to perform Eda on your data set but we can’t possibly look at every single thing so I’m just going to show you what I think are some of the most popular and the best things that you can do when you’re first looking at a data set the first thing that we’re going to do are import our libraries so we’ll do import andas as PD we’re also going to import Seaborn and matplot lib now during this exploratory data analysis process I often like to visualize things as I go because sometimes you just can’t fully comprehend it unless you just visualize it and it gives you a a larger broader glimpse of everything so we’re going to import and let’s do caborn oops as SNS and then we’ll import Matt plot li. pyplot as PLT let’s run this this should work okay perfect now we need to bring in our data set so we’ve worked with that world population data set that is the exact one that we’re going to use now so we’ll say dataframe equals pd. read CSV do R and we’ll paste in our CSV and this is what it should look like although your path may be different be sure to make sure that you have the correct file path then we’ll read it in now this data set should look extremely familiar if you’ve done some of my previous pandas tutorial but I did make some alterations to this one took out a little bit of data put in a little bit of data here and there um to change things up because if it was just exactly how I pulled it which I got this data set from kaggle if it was exactly how we pulled it like we’ve looked at in the previous videos it’s too simple you know we wouldn’t actually be able to do some of the things that I would like to show you so be sure to actually download this exact data set for this video because it is a little bit different but what we’re going to do now is just just try to get some highlevel information from this now if yours looks just a little bit different like your values are in scientific notation uh I have applied this so many times I think it’s um you know still applied to this you can do something and we’ll write it right down here we’re going to do pd. setor option and we’ll do an open parenthesis and we’ll say display. flator format and so we’re going to change that float format by just saying Lambda X colon and then we’re going to change basically how many um decimal points we’re looking at so let’s just do here so we do a quote sign 2f so we’re formatting it whoops 2f so we’re going to format it and we’ll do percent X this is going to format it appropriately I’m I can run it um and actually it will change it CU this is at0 one I believe last time I did it so let’s run this and then let’s run this again n it’ll change it to0 2 so that’s two I like it at 0.1 we don’t really need it any well let’s keep it at0 2 why not we’re going to keep it at0 two that’s how you change that and I like looking at it like this a lot better than scientific notation so just something to point out um let’s go down here and let’s just pull up data frame so we have this data one of the first things that I like to do when I get a data set is to just look at the info so we’re going to do do info and this gives gives us just some really high level information this is how many columns we have here are the column names here are how many uh values we have and if you notice this is where it kind of gets so we have 234 in each of these so in each of these columns we have 234 until we get to this 2022 population once we get there we start losing some values and then at the world population percentage we have all of our values all 234 of them the count tells us that it’s nonnull so it does have values in it and then we also have the data types and these come in handy later um and these are really great to know and we’ll be able to kind of use those in a few different ways later on in this tutorial really quickly I wanted to give a huge shout out to the sponsor of this entire Panda series and that is udemy udemy has some of the best courses at the best prices and it is no exception when it comes to pandas courses if you want to master pandas this is the course that I would recommend it’s going to teach you just about everything you need to know about pandas so huge shout out to UD me for sponsoring this Panda series and let’s get back to the video the next thing that I really like to do and this one is DF do describe this allows you to get really a high level overview of all of your columns very quickly you can get the count the mean the standard deviation the minimum value and the maximum value as well as your 25 50 and 75 percentiles of your values so just at a super quick glance there is a row somewhere in here and there this country their population is 510 for 2022 and in fact if you go back to 1970 it was higher was at 752 that’s just interesting then if we look at the um max population one has 1.42 billion I believe that’s China and then over here in 1970 we have 822 million again I still believe that’s China but this gives you just a really nice high level of all of these values all these different calculations that you can run on it and we can run all these individually on even specific columns but you know this just a nice high level overview one thing that we just talked about was the null values that we’re seeing in here um I’d like to see how many values we’re actually missing because that is a problem um we don’t want to have too many missing values that could really obscure or change the data set entirely and so we don’t want that so we’ll say DF do is null and then we’ll do a parenthesis we’ll say do sum and when we do this whoops dot sum there we go when we do this it’s going to give us all the columns and how many values we’re actually missing now we have 234 rows of data so we have 41477 55424 um so we have we definitely have data missing what we choose to do with it in the data cleaning process maybe we want to populate it with a median value Maybe we just want to delete those countries entirely if the data is missing um you know I don’t think you’re going to do that but these are things that you need to think about when you’re actually finding these missing values this is what the Eda process is all about we want to find different um either outliers missing values things that are wrong with the data or we can find insights into it while we’re doing this as well so this is definitely something that I would consider um when I’m actually going through that data cleaning process really important information to know now let’s go right down here go to our next cell say DF do unique and this is going to show us how many unique values and it’s actually n unique uh this is going to show us how many unique values are actually in each of these uh columns and this one makes the most sense um for continent because I think there’s only seven continents right um but we have six right here and for all of these each of these ranks countries capitals should all be unique that makes perfect sense as well as these you know these populations are such specific numbers in such large numbers I would be shocked if any of these were similar and then for these world population percentages it’s much lower and again that makes a lot of sense because when we’re looking at and we’ll pull it up right here when we’re looking at these world population percentages um a lot of them are really low 0.00 0.01 like this one um 0 .2 there are a lot of really low values for those small countries and so those are all um you know one unique value now let’s say we just have this data right here and we want to take a look at some of the largest countries and we can easily do that we could even we could say Max and take a look at the largest country but I want to be a little bit more strategic I want to be able to look at some of the top range of countries and we can do that based off this 2022 population so we’ll say DF do sort underscore values this is how we sort and um not filter but um order our data so we’ll do sort values and then we’ll do buy is equal and then we’ll specify that we want uh this 2022 population and then we’re going to say comma and we’ll say actually let’s just run this as is um but we’ll do head because we just want to look at the top values so now we’re just looking at the very top values so what we’re looking at is actually these 2022 population um that’s what we’re filtering on or sorting on basically and we’re looking at the very bottom values because it’s sorting ascending so from lowest to highest so this Vatican City in Europe is um you know 510 that’s the value that we were looking at earlier now we can do comma ascending equal to false because it was by default true we can do false whoops we can do false and then it’ll give us the very largest ones so if we just take a look at the top five largest by population we’re looking at China India United States Indonesia and Pakistan and we can even specify that we want the top 10 in this head we can bring in the top 10 and we also have Nigeria Brazil Bangladesh Russia and Mexico and you can do this for literally any of these columns whether you want to look at continent capital country um you can sort on these and look at them and you can even look at you know things like growth rate world percentage this one seems really interesting let’s just look at this one really quick before we move on to the next thing um if we look at this world percentage just China alone I believe yep just China alone is 17.88% of the world so 17.88% again just getting in here looking around that’s all we’re really doing now I want to look at something and I have always liked doing this which is looking at correlations um so correlation between usually only numeric values we can do that by saying DF docr and a parenthesis and we’ll run this and what this is is it is comparing every column to every other column and looking at how closely correlated they are so this 2022 population if we look across the board it’s very highly I mean this is a a one: one this is highly correlated to each other and that almost for all of these populations they’re very very closely tied to each other which makes perfect sense because for most countries they’re going to be steadily increasing and so they’re probably almost exactly correlated but we can look at these populations and if you look at the area it’s only somewhat correlated and that’s because in some countries you know they have a very high population but a small area or vice versa small area in a very high population so there isn’t a one toone correlation there but it’s hard to really just glance at this um and understand everything that’s there we could just visualize it and it would be a lot easier so let’s go ahead and do that let’s go down here we’re just going to visualize this using a heat map basically so we’re going to say SNS do heatmap and an open parentheses and the data that we’re going to be looking at is DF do core correlation and then we also want to say inote equals true I’ll kind of show you what that looks like in just a little bit um but let’s do PLT doow and this will be our first look and I need to say show not shot um we can get a little glimpse of what it looks like but this looks um absolutely terrible let’s change the figure size really quickly so I want to make this much larger than it already is we’ll do PLT Dot RC pams RC pams oops right there do an open parenthesis and then right here we’re going to do in quotes do figure. fig size this actually needs to be in brackets I believe just like this not parentheses we’ll say fig size is equal to and now we can specify the value that we want let’s do 10 comma 7 and see if this looks any better no no that’s doesn’t look good do 20 okay that looks a lot better and um you know this is just a quick way because it gives you basically a colorcoded system highly correlated is this tan all the way down to basically no correlation or negative correlation even which is black so when we’re looking at these 2022 populations and these are populations right down here on this axis we can see that all of these are extremely highly correlated very very quick whereas the rank really has nothing to do it’s it’s negatively correlated doesn’t really have anything to do with it then for the population and the world population percentage it again is quite correlated except for the area density and growth rate so I find that really interesting that you know the density the growth rate in the area aren’t really all that Associated or correlated with the population numbers that is I kind of of would have assumed that on some level they went hand inand the area does um would you know again make sense you know larger area larger population that kind of thing but even density um I guess I guess density and growth rate um growth rate I can see because that’s a percentile thing that could be definitely not correlated but I thought the density would be more correlated than it is all that to say is this is one way that you can kind of look at your data see how correlated it is to one another that can definitely um help you know what to analyze and look at later when you’re actually doing your data analysis let’s go right down here um something that I do almost all the time when I’m doing any type of uh exploratory data analysis like this I’m going to group together columns start looking at the data a little bit closer um so let’s go ahead and group on the continent so let’s look at it right here let’s group on this continent because sometimes when you’re doing this Eda you already know kind of what the end goal of this data set is you know kind of what you’re looking for what you’re going to visualize at the end that you really comes in handy when doing this but sometimes you don’t sometimes just going in blind and so far we’ve really just been going in blind we’re just throwing things at the wind kind of seeing some overviews um looking at correlation that’s all we’ve done now I kind of want to get more specific I want to have like a use case something I’m kind of looking for not doing full data analysis not diving Into the Depths but something we can kind of aim for so the use case or the question for us is are are there certain continents that have grown faster than others and in which ways so we want to focus on these continents we know that that’s the most important column for this use case this very fake use case um so we can group on this continent and we can look at these populations right here because we can’t really see growth you can see a growth rate but the density per uh kilometer we don’t have multiple values for that it’s just a static one single value same for growth rate same for world population percentage but we have this over a long span many many years um you know 50 years of data here so this we can see which countries have really done well or which continents have really done well so without you know talking about it even more let’s do DF Group by and then we’ll say continent oops let me just copy this I’m I’m not good at spelling I’m going to say DF Group by and then we’ll do mean and we can just do it just like this and now we have Africa Asia Europe North America Oceana and South America okay so if I’m being completely honest I knew most of these all right I’m no geography extra expert but I I knew most of these I don’t know what this ocean is um this that I don’t I genuinely don’t know what that is um so let’s just search for that value and see we’ll come back up here in just a second but I want to I want to kind of understand um what this is so we’re going to DF um and we’ll say content let me sound that out for you guys um then we’ll do do string. contains oops contains good night and then I want to look for Oceana uh and let’s let’s run this oh I need to do it like this now let’s run this so now we’re looking at our data frame we’re seeing what the values have this continent as Oceana um okay so these look like Islands I’m guessing so we have Fiji Guam um New Zealand Papa New Guinea yeah these look like all I’m I’m guessing based off the continent Oceana um Oceania o ocean Oceania guys this is tough for me okay I’m doing my best I you know this is part of the Eda process I don’t know what that means I don’t know what Oceana ocean ocean Oceania geez I’m just going to call it Oceana that’s so wrong but I’m just gonna it’s so easy for me to say you know I I now am seeing this and it looks like Islands um which would make sense because for their average they have the highest average rank um and I’m guessing that’s because they’re just mostly small continents so let’s let’s order this really quickly we’re going to do dot sortore values do an open parenthesis and I want to sort on the population we’re just doing the average population um we’ll do BU um equal so on the average population and we’ll do ascending equals false so when we’re looking at this average or the mean population Asia has the highest population on average then we have South America Africa Europe North America and then Oceana at the very bottom which makes perfect sense again small Islands um world population percentage so each of the countries each of those countries in Asia makes up about 1% on average really interesting um to know and just kind of look at this and the density in Asia is far higher than d almost double every single other continent um really really interesting actually now that I’m looking at this but you know that’s something that I would actually look into and I would be like what is this Oceana or oenia what does that mean and you know let me look into that let me explore that more because I want to know this data set I’m trying to really understand this data set well but what I want to do now is I want to visualize this um because I just feel like looking at it I don’t it’s hard to visualize and again the use case that we’re saying is is which continent has grown the fastest like it could be percentage wise it could be um you know as just a whole on average let’s take a look so we’re going to take this and let’s copy it like this let’s bring this right down here so let’s look at this so if I try to visualize this and let’s do that let’s do df2 is equal to because I’m I already know it’s not going to look good just based off how the data’s sitting um we can do df2 oops what am I doing I don’t need to do that but I will okay df2 and we’ll do df2 do lot and we’ll run it just like this um as you can see Asia South America Africa Europe North America Oceana we can kind of understand what’s happening but these are the actual um values that are being visualized not the continents which is what I wanted um in order to switch it and it’s actually pretty easy and this is something that um you know is good to know we can actually transpose it to where these these continents become the columns and the columns become the index and all we have to do is say df2 do transpose and we’ll do this parentheses right here and let’s just look at it and then we’ll save it so now all these columns are right here and all of the indexes are the columns so we’ll say df3 is equal to and I’m just doing that so I don’t you know write over the DF or my earlier data frames so now we have this data frame three so now let’s do data frame 3. plot and it should look quite a bit different uh whoops I didn’t run this let’s run this and run this and as you can see this does not look right at all and the reason is because we’re not only looking at uh the correct columns we have this density in here we population percentage rank we don’t need any of those the only ones that we want to keep are these ones right here this population now we can do that and we can just go right up here this is where we created that data frame two that we transposed we can go right up here and we can specify within this we actually only want specific values now we can go through and handr write all of these and by all means go for it but I am going to go down here I’m going to say DF do columns and I’m going to run this it’s going to give us this list of all of our columns and I’m just going to you can just copy this and you can put it right in here I need a list with I think it needs to be like this if I’m let me try running this okay so this worked properly you can do it just like this or a little shortcut if you want to do it like that if you want to do a shortcut like um I I would hope you would you would just do DF do columns just like how we looked at down here except since this is our an index we can search through it so we can just say 0 1 two okay so we can do five up to 13 so I think it’s seven and we’ll just let’s see if this works uh it may not I may actually need to go like this let’s see there we go so you can just use you know the indexing to save you some visual space gives you the exact same output so now we have this this is our df2 now let’s go down and transpose it so now we just have these populations and we have our continents right here and then now we’re going to plot it and this looks good although it’s backward um okay it’s backward so what I actually want to do is not this uh that is a quick way to do it although not the best way to do it um so I’m actually going to copy all of these and although I said it would save us time it did not at all so I’m going to put a bracket right here I’m going to paste this in here and I’m literally going to change these up I might speed this up or I might just have you sit through this because you know this is an interesting part of the process and I want you know you to get the full experience you know what now that I’m talking about it that is what we’re going to do do you guys can hang out with me this is a good time we have 2010 2015 2020 and 2022 now let’s run it what did I do oh too many brackets there we go so now it’s ordered appropriately we have 1970 all the way up to 2022 this is how we want it let’s transpose it appropriately let’s run it and now we basically have the inverted uh image of this now just at a glance and we haven’t done anything to this except for literally what we are looking at at a glance we can see that from 1970 China you know Asia and China are already in the lead by quite a bit and it continues to drastically go up especially in the 2000s like right here it explodes like just straight up then kind of starts going up and just leveling off every other continent especially oce ocean is just really low it it never has done a bunch let’s see look at green green has gone up um from you know Point let’s say 0.1 up to about 0.2 so they’ve almost doubled um in the last 50 years and again you can just get an overview a highlevel overview of each of these you know continents over the span of this time so this is kind of one way that we can you know look at that use case we’re not going to harp on that too long I just want to give you an example like you know when you’re looking at this sometimes you’ll have something in mind of what you’re looking for and you go exploring and just kind of find what’s out there and find what you see um the next thing I want to look at is a box plot now I personally I love box plots you know they’re really good for finding outliers and there’s a lot of outliers I already know this because the average the 25th 50 percentile are very low and then there’s some really just big outliers but for your data set it may not be that way and those outliers may be something that you really need to look into and box plots have been something that I’ve used a lot where I found those outliers that way and started to dig into the data to find those outliers and you know came across some stuff that I’m like oh I have to clean this up I have to go back to the source really um really really powerful and useful to be able to find these so all you have to do is DF dobox plot and let’s take a look at it and this already looks good as is maybe I’ll make it a little a little bit wider um let’s do fig size oops sorry fig size is equal to let’s try 20 by 10 um okay that didn’t help at all I apologize I thought I would but let’s keep going what this is showing us is that these little boxes down here which are actually usually much larger because you have a more equal distribution of of um numbers or values in the small value this is where our averages lie this number right here is the upper range and then all these values all these Open Circles those actually stand for outliers so we’re looking at the 2022 population there’s a lot of outliers now for our data set knowing our data set is really important outliers are to be expected especially when most countries or continents are small so we’re looking at you know all of these little dots are outlier countries um or outlier values which each value corresponds to a country so if this was a different data set I would be you know searching on these and trying to find these so that I can see what’s wrong with them if anything or if they are real um numbers like if this was Revenue everyone’s revenue is way down here and then there’s one company that’s making like 10 trillion dollar that’d be an outlier up here and it would definitely be something that you want to look into for our data set knowing that you know we’re looking at population this is more than acceptable you know oddly enough but that’s what box plots are really good for showing you some of those core tiles the upper and the lower um as well as denoting these points that fall outside of those normal ranges for you to look into so really really useful so now let’s go down here pull up our data frame again and we’ve kind of just zoomed into the whole Eda process there was one last thing that I wanted to show you and this is the very last thing that we’re going to look at we’re ending on really a low point if I’m being honest because the last kind of stuff was more much more exciting but there is something DF DOD types oops let’s do DF DOD types and we’ll run this now just like info it gave us these values but we’re actually able to search on these values now so these um object float and integer we can search on those which is really great because we can do include equal and we can use something like number and none of these are numbers right or none of them EXP say number but when we run it I’m getting an error series object not oh that’s because I’m doing um D types is for a series we need to do select underscore D types now let’s run this now it’s only returning um The Columns in this data frame where the data types are included in this number so you won’t see any you know country or any of those text or the strings if we want to do that we go in here and say object and run that and this is another really quick way where we can just filter those columns to look for specific whether it’s numeric um we could even do float in here and so now it’s not including that rank which was an integer so we can specify the type of data type and it’ll filter all of the columns based off of that which you know when you’re doing stuff like this you it is good to know what kind of data types you’re working with and look at just those types of data types because there might might be some type of analysis you want to perform on just that whether it’s numeric or just the string or integer columns within your data set so again ending on a low note I apologize um you know everything else that we looked at all those other things that we looked at are all things that I typically do in some way or another when I’m looking at a data set exploratory data analysis is really just the first look you’re looking at it you’re going to be cleaning it up doing the data cleaning process and then you’re going to be doing your actual data analysis actually finding those Trends and patterns and then visualizing it um in some way to find some kind of meaning or Insight or value from that data and again there’s a thousand different ways you can go about this it it does typically um you know depend on the data set but these are a lot of the ways that you’ll clean a lot of different data sets and so you know that’s why I went into the things that we looked at in this video so I hope that you guys liked it I hope that you enjoyed something in this tutorial if you like this video be sure to like And subscribe as well as check out all my other videos on pandas and Python and I will see you in the next video [Music]
Affiliate Disclosure: This blog may contain affiliate links, which means I may earn a small commission if you click on the link and make a purchase. This comes at no additional cost to you. I only recommend products or services that I believe will add value to my readers. Your support helps keep this blog running and allows me to continue providing you with quality content. Thank you for your support!
This course teaches backend development using Node.js and Express.js, covering topics such as building APIs, database management with MongoDB and Mongoose, user authentication with JWTs, and securing the API with Arcjet. The curriculum also includes implementing rate limiting, bot protection, and automating email reminders using Upstash. Finally, the course details deploying the application to a VPS server for scalability and real-world experience. The instruction progresses from theoretical concepts to a hands-on project building a production-ready subscription management system. Throughout, the importance of clean code practices and error handling is emphasized.
Backend Development with Node.js and Express.js: A Study Guide
Quiz
Answer the following questions in 2-3 sentences each.
What is the primary difference between REST APIs and GraphQL APIs, as described in the text?
What are backend frameworks and why are they important in backend development? Give two examples.
What are the two main types of databases, and how do they differ in terms of data storage and querying?
When might you choose a non-relational database (NoSQL) over a relational database (SQL)?
What does a “rate limit exceeded” message indicate in the context of an API, and why is this implemented?
What is the purpose of a linter in software development, and why is it beneficial?
What is the significance of using nodemon during development? How does it streamline the development process?
Explain what environment variables are and why it’s crucial to manage them for different environments (development, production).
What are routes in the context of a backend application, and how do they relate to HTTP methods?
Briefly describe what middleware is and give an example of middleware that was mentioned in the text.
Quiz Answer Key
REST APIs often require multiple endpoints to fetch different data, while GraphQL uses a single endpoint where clients specify the exact data fields they need, making it more flexible and efficient. GraphQL minimizes over-fetching or under-fetching issues for complex applications.
Backend frameworks provide a structured foundation for building servers, handling repetitive tasks like routing and middleware. This allows developers to focus on the unique logic of their application. Examples include Express.js, Django, and Ruby on Rails.
Relational databases store data in structured tables with rows and columns and use SQL for querying and manipulating data. Non-relational databases offer more flexibility, storing unstructured or semi-structured data, and don’t rely on a rigid table structure.
You might choose NoSQL for handling large volumes of data, real-time analytics, or flexible data models, such as in social media apps, IoT devices, or big data analytics, where relationships between data points are less complex or not easily defined.
A “rate limit exceeded” message indicates that a client has made too many requests to an API within a certain time frame, which could potentially overwhelm the server. This is implemented to prevent bad actors or bots from making excessive calls that could crash the server.
A linter is a tool that analyzes source code for potential errors, bugs, and style inconsistencies. It helps developers maintain a clean and consistent codebase, making it easier to scale the application and avoid future issues.
Nodemon automatically restarts the server whenever changes are made to the codebase, this eliminates the need to manually restart the server each time a change is made, making development smoother and more efficient.
Environment variables are dynamic values that can affect the behavior of running processes. Managing them for different environments (like development and production) allows for different settings (like port numbers or database URIs) to be used without changing the underlying code.
Routes are specific paths (endpoints) in a backend application that map to specific functionalities, they define how the backend will respond to different HTTP requests (GET, POST, PUT, DELETE).
Middleware in a backend application is code that is executed in the middle of the request/response cycle. For example, the error handling middleware intercepts errors and returns useful information or the arcjet middleware protects the api against common attacks and bot traffic.
Essay Questions
Answer the following questions in well-structured essays.
Compare and contrast relational and non-relational databases. Discuss situations in which you would favor each type, and discuss benefits and challenges related to each.
Describe the process of creating user authentication using JSON Web Tokens (JWTs). Explain how JWTs are created, how they are used to authorize access, and how security is maintained within the authentication process.
Discuss the importance of middleware in backend application development. Provide examples of how middleware can be used to handle common tasks or security issues.
Describe how you would set up and configure a virtual private server (VPS) for hosting a backend application. What are some steps that must be taken to ensure a robust and secure setup?
Discuss the role of API rate limiting and bot protection in maintaining a stable and secure web application. Explain how these measures contribute to the overall user experience, and discuss the consequences of not implementing them.
Glossary
API (Application Programming Interface): A set of rules and protocols that allows different software applications to communicate with each other.
Backend: The server-side of a web application, responsible for processing data, logic, and interacting with databases.
Controller: In the MVC architectural pattern, controllers handle the application’s logic. They take user input from a view, process the information using a model, and update the view accordingly.
CRUD: An acronym that stands for Create, Read, Update, and Delete. These are the four basic operations that can be performed on data in databases.
Database: A system that stores, organizes, and manages data, it can be either relational or non-relational.
Environment Variable: A named value that is set outside the application to affect its behavior without changing the code.
GraphQL: A query language for APIs that allows clients to request exactly the data they need, avoiding over-fetching and under-fetching.
HTTP Client: Software used to send HTTP requests to servers, commonly used for testing and interacting with APIs.
HTTP Method: A verb (e.g., GET, POST, PUT, DELETE) that specifies the type of action to be performed in an HTTP request.
JSON (JavaScript Object Notation): A lightweight data-interchange format that is easy for humans to read and write and easy for machines to parse and generate.
JSON Web Token (JWT): A standard method for securely transferring information between parties as a JSON object. Used for authentication and authorization in web applications.
Linter: A tool that analyzes source code for potential errors, bugs, and style inconsistencies.
Middleware: Code that is executed in the middle of the request/response cycle in an application, performing specific tasks, such as request logging, data validation, and error handling.
Model: In the MVC architectural pattern, models represent the data and business logic of the application.
Mongoose: An Object Data Modeling (ODM) library for MongoDB and Node.js, providing a schema-based way to structure data.
NoSQL Database (Non-Relational Database): A type of database that doesn’t follow the relational model of tables with rows and columns, often used for unstructured or semi-structured data.
ORM (Object Relational Mapper): Software that acts as a bridge between object-oriented programming languages and relational databases allowing developers to interact with the database using objects instead of SQL.
Rate Limiting: A technique used to control the number of requests a client can make to an API within a given time frame, preventing overuse or abuse.
Relational Database (SQL Database): A type of database that stores data in structured tables with rows and columns and uses SQL (Structured Query Language) for querying and manipulating data.
REST API (Representational State Transfer Application Programming Interface): An API that adheres to the REST architectural style, using standard HTTP methods (GET, POST, PUT, DELETE).
Route: A specific path (endpoint) in a backend application that maps to a specific function, allowing an application to handle different HTTP requests and deliver content accordingly.
Salt: Random data that is used as an additional input to a one-way function that “hashes” data like a password, preventing dictionary and rainbow table attacks.
SQL (Structured Query Language): A standard language for accessing and manipulating data in relational databases.
VPS (Virtual Private Server): A virtual server that operates within a larger server, often used for hosting web applications and APIs.
Node.js Backend API Development
Okay, here’s a detailed briefing document summarizing the provided text, focusing on key themes and important ideas, along with relevant quotes:
Briefing Document: Building a Backend API with Node.js
Introduction
This document summarizes a tutorial focused on building a backend API using Node.js, Express.js, and MongoDB, covering essential concepts such as API design, database management, security measures, and deployment. The tutorial emphasizes a practical approach, guiding users through each stage of development, from setting up the environment to deploying the final application.
Key Themes & Concepts
API Fundamentals:
REST vs. GraphQL: The tutorial briefly introduces GraphQL as a more flexible alternative to REST APIs, allowing clients to request specific data, avoiding over-fetching.
Quote: “graphql apis developed by Facebook which offer more flexibility than Rest apis by letting clients request exactly the data they need instead of multiple endpoints for different data”
Backend Languages and Frameworks: It highlights that to build APIs, backend languages like Python, Ruby, Java or JavaScript runtimes such as Node.js are needed. Frameworks like Express, Hono, and NestJS (for JavaScript) are introduced as structured foundations for building servers, reducing repetitive tasks.
Quote: “Frameworks provide a structured foundation for building servers and they handle repetitive tasks like routing middleware and aor handling so you can focus on your apps unique logic”
API Endpoints: The text emphasizes the importance of creating well-defined API endpoints, showing how routes are handled with Express.js (e.g., app.get, app.post).
Database Management:
Database Fundamentals: The source explains that a database is “a system that stores organizes and manages data” and emphasizes they’re optimized for speed, security, and scalability.
Relational (SQL) vs. Non-Relational (NoSQL) Databases: The tutorial differentiates between relational databases (using SQL, like MySQL, PostgreSQL) and non-relational databases (NoSQL, like MongoDB, Redis). It recommends SQL for highly structured data and NoSQL for more flexible models.
Quote: “relational databases store data in structured tables with rows and columns much like a spreadsheet… they use something known as SQL a structured query language which allows you to query and manipulate data” *Quote: “non relational databases also referred to as nosql databases they offer more flexibility and don’t rely on a rigid structure of tables they handled unstructured or semi-structured data making them perfect when data relationships are less complex”
MongoDB Atlas: The course uses MongoDB Atlas, a cloud-based NoSQL database service, for its convenience and free tier.
Setting up the Development Environment
Node.js & npm: The tutorial demonstrates using Node.js with npm for package management, including installing dependencies such as Express, nodemon, and eslint.
Express Generator: It shows how to use the Express generator to quickly set up a basic application structure. *Quote: “simply run MPX express-g generator and add a no view flag which will skip all the front- end stuff since we’re focusing just on the back end”
Nodemon: Nodemon is used to automatically restart the server whenever code changes, enhancing the development experience. *Quote: “what nodemon does is it always restarts your server whenever you make any changes in the code”
ESLint: ESLint is employed to maintain code quality and consistency.
Environment Variables: The text explains the use of .env files and the dotenv package for managing environment-specific configurations.
Security and Authentication
Rate Limiting: It introduces the concept of rate limiting to prevent API abuse, using tools like Arcjet, showing how to implement rate limiters
Quote: “you’ll be hit with a rate limit exceeded this means that you’ll stop bad users from making additional requests and crashing your server”
Bot Protection: It shows how to add a layer of bot protection to block malicious users or Bots from accessing your API.
Quote: “we’ll also Implement a bot protection system that will block them from accessing your API all of that using arcjet”
JSON Web Tokens (JWT): JWTs are used for user authentication. The tutorial demonstrates generating and verifying JWTs to protect API endpoints.
Password Hashing: Bcrypt is used to hash passwords, ensuring secure storage in the database.
Authorization Middleware: A custom middleware is introduced to verify user tokens and protect private routes.
Quote: “This means if at any point something goes wrong don’t do anything aboard that transaction”
Application Logic:
Controllers: It introduces the use of controller files to house the logic for handling API routes, keeping the routes files clean.
Models: Mongoose is used to create data models (schemas) for both users and subscriptions, defining data structure and validation rules. The subscription model is very comprehensive, showcasing use of validators, enums and timestamps as well as pre-save hooks and virtual fields.
CRUD Operations: The tutorial shows how to implement Create, Read, Update, and Delete (CRUD) operations for users and subscriptions.
Quote: “a foundational element of every sing s Le API out there you need to be able to delete create or read or update literally anything out there”
Error Handling: A global error handling middleware is created to manage and format responses for various types of errors, such as resource not found, duplicate keys, and validation errors, which helps with debugging.
Advanced Features:
Atomic Operations: The concept of atomic operations is introduced by making database transactions. This makes it so multiple operations can be treated as single units of work, preventing partial updates. *Quote: “database operations have to be Atomic which means that they either have to do All or Nothing insert either works completely or it doesn’t”
Upstash Workflow: The guide also introduces a system for setting up email reminders using Upstash, a platform for serverless workflows. Upstash helps set up tasks which can be triggered on a cron basis to send emails or SMS messages to a user. This also shows how to set up Upstash workflows using a local development server for testing purposes.
Email Reminders: NodeMailer is used to send reminder emails to users based on subscription renewal dates. This includes a nice custom email template with HTML.
Deployment
Virtual Private Server (VPS): The tutorial uses Hostinger VPS for deploying the API, emphasizing the flexibility and control it offers.
Git: Git is used for version control and for transferring the code to the VPS.
PM2: PM2 is used as a process manager to keep the Node.js application running reliably on the VPS. The document does note that the deployment portion may have errors as it depends on the operating system chosen for the VPS but there is a free, step by step guide included to finish the deployment.
Key Quotes
“to build any of these apis you’ll need a backend language so let’s explore our C to build your apis you could use languages like python Ruby Java or JavaScript runtimes like node bun or Dino”
“building a backend isn’t just about creating API endpoints it’s about managing data you might think well why not just store the data directly on the server well that’s inefficient and doesn’t scale as your app grows that’s why every backend relies on dedicated Storage Solutions commonly known as databases”
“think of a database as a specialized software that lives on a computer somewhere whether that’s your laptop a company server or a powerful machine in a remote data center just like your laptop stores files on a hard drive or an SSD databases store data but here’s the difference databases are optimized for Speed security and scalability”
“you should do what we’re doing in this video where you’re going to have users or subscriptions and then you can either have a specific Item ID or you can just have for/ subscriptions and get all of them”
“you never want to share those with the internet great in the next lesson let’s set up our routes to make your API serve its purpose”
“typically you needed routes or endpoints that do their job that way front-end apps or mobile apps or really any one that you allow can hit those endpoints to get the desired data”
“we’re basically dealing with crud functionalities right here a foundational element of every sing s Le API out there you need to be able to delete create or read or update literally anything out there”
“now is the time to set up our database you could use something older like postgress or or maybe something modern like neon which is a serverless platform that allows you to host postr databases online then you could hook it up with an orm like drizzle and it would all work but in this course I’ll use mongodb Atlas”
“models in our application let us know how our data is going to look like”
“we’re not keeping it super simple I got to keep you on your toes so you’re always learning something and then we also have references pointing to other models in the database”
“we can create another middleware maybe this one will actually check for errors and then only when both of these middle Wares call their next status we are actually navigated over to the controller which handles the actual logic of creating a subscription”
“what we’re doing here is we’re intercepting the error and trying to find a bit more information about it so we much more quickly know what went wrong”
“controllers form the logic of what happens once you hit those routes”
“hashing a password means securing it because you never want to store passwords in plain text”
“rate limiting is like a rule that says hey you can make a certain number of request in a given time and it prevents people or most commonly Bots from overwhelming your servers with two many requests at once keeping your app fast and available for everyone”
“not all website visitors are human there are many Bots trying to scrape data guess passwords or just Spam your service bot prot protection helps you detect and block this kind of bad traffic so your platform stays secure and functional”
“you’ll be able to see exactly what is happening on your website are people spamming it or are they using it politely”
“every routes file has to have its own controllers file”
“you should always validate your request with the necessary authorization procedure before creating any kind of document in your application”
“it’s going to say something like USD 10 monthly”
“you built your own API but as I said we’re not finishing here in that free guide that will always be up to date you can finish this course and deploy this API to a VPS so it becomes publicly and globally accessible”
Conclusion
The tutorial provides a comprehensive guide to building a backend API from start to finish. It covers many topics, including setting up a development environment, creating an API, managing a database, implementing security, and deploying the application. The step by step approach and the focus on using tools make this a useful guide for anyone trying to build their own API.
Building and Securing GraphQL APIs
Frequently Asked Questions:
What are the advantages of using GraphQL APIs compared to REST APIs? GraphQL APIs offer greater flexibility than REST APIs by allowing clients to request the specific data they need. Unlike REST where multiple endpoints may be required for different data sets, GraphQL uses a single endpoint and clients can specify the precise fields required. This is particularly efficient for complex applications with lots of interconnected data, as it reduces over-fetching (getting more data than required) or under-fetching (not getting all the data required) of information.
What are backend frameworks and why are they essential for building APIs? Backend frameworks provide a structured foundation for building servers and APIs. They handle repetitive tasks like routing, middleware, and error handling, allowing developers to focus on the application’s specific logic. This significantly reduces the amount of code needed to start, thus accelerating the development process. Popular frameworks include Express.js, Hono, and NestJS for JavaScript; Django for Python; Ruby on Rails for Ruby; and Spring for Java.
Why are databases essential for backend development, and what are the two primary types? Databases are specialized systems designed for efficient storage, organization, and management of data, essential for the backend of an application. They are optimized for speed, security, and scalability. The two primary types are relational and non-relational databases: relational databases store data in structured tables with rows and columns, using SQL, and are best for structured data like in banking systems, while non-relational (NoSQL) databases like MongoDB offer greater flexibility for unstructured or semi-structured data, ideal for social media apps or real-time analytics.
How do relational (SQL) and non-relational (NoSQL) databases differ, and when should each be used? Relational databases (SQL) organize data into tables with rows and columns, using SQL for querying and manipulation, making them best for structured data and complex relationships, such as in banking or e-commerce. NoSQL databases, like document-based MongoDB or key-value stores like Redis, offer greater flexibility and can handle unstructured or semi-structured data. NoSQL databases are preferred when dealing with large volumes of data, real-time analytics, or flexible data models, as often seen in social media platforms, IoT devices or big data analytics.
What is rate limiting and bot protection, and why are they crucial for API security? Rate limiting is a technique used to control the number of requests a user can make within a specific time frame, preventing API spam and denial-of-service attacks. Bot protection systems identify and block malicious bot traffic, protecting the API from unauthorized access and abuse. Both are essential to maintain server stability, performance, and prevent potential system crashes due to malicious or unintended excessive use.
What is middleware, and how is it utilized in the context of a backend application? Middleware in a backend application is code that is executed before or after a request is processed by your application routes. It acts as a layer to intercept, modify, or add to the request/response cycle. Some common middleware examples are authentication middleware to check authorization levels or global error handling middleware to ensure any application errors are handled gracefully. Middleware is useful to maintain modular and reusable code, implementing functionalities like logging, authorization, or data validation and transformation.
What are JSON Web Tokens (JWTs) and how are they used in the provided system for authentication and authorization? JSON Web Tokens (JWTs) are a standard method for representing claims securely between two parties. In the provided system, JWTs are used for authentication and authorization. When a user signs up or signs in, the server generates a JWT containing the user ID and sends it back to the client. For subsequent requests to protected routes, clients include the JWT in the request header. The server then verifies the JWT, authenticating the user and determining whether they have the necessary authorization to access the route. If invalid or missing, the user will receive an unathorized error message.
What is the purpose of using a local development server for workflows, such as those developed with Upstash, and why is it beneficial? Local development servers allow you to test and debug workflows without having to deploy code to a live environment. They simulate a production-like setup, enabling you to identify and fix potential issues. This is particularly useful with tools like Upstash, where it enables unlimited tests without incurring costs associated with running the workflows. This helps reduce costs and save time from complex setups, making the development process more efficient.
Backend Development Fundamentals
Backend development is crucial for the functionality of applications, handling data, security, and performance behind the scenes. It involves servers, databases, APIs, and authentication.
Here’s a breakdown of key backend concepts:
The Web’s Two Parts: The web is divided into the front end, which focuses on user experience, and the backend, which manages data and logic.
Servers: Servers are powerful computers that store, process, and send data. They host the backend code that manages users, processes data, and interacts with databases.
Client-Server Communication: Clients (like browsers) send requests to servers. Servers process these requests and send back data.
Protocols: Computers use communication rules called protocols, with HTTP (Hypertext Transfer Protocol) as the backbone of the internet. HTTPS is the secure version of HTTP.
DNS (Domain Name System): DNS translates domain names (like google.com) into IP addresses (like 192.168.1.1), which are unique identifiers for devices on the internet.
APIs (Application Programming Interfaces): APIs allow applications to communicate with the backend. They define how clients and servers interact by using HTTP methods to define actions, endpoints (URLs for specific resources), headers (metadata), request bodies (data sent to the server), and response bodies (data sent back).
HTTP Methods/Verbs: APIs use HTTP methods like GET (retrieve data), POST (create new data), PUT/PATCH (update data), and DELETE (remove data).
API Endpoints: A URL that represents a specific resource or action on the backend.
Status Codes: API calls use status codes to indicate what happened, such as 200 (OK), 201 (created), 400 (bad request), 404 (not found), and 500 (internal server error).
RESTful APIs: REST (Representational State Transfer) APIs are structured, stateless, and use standard HTTP methods, making them widely used for web development.
GraphQL APIs: GraphQL APIs, developed by Facebook, allow clients to request specific data, reducing over-fetching and under-fetching, which makes them efficient for complex applications.
Backend Languages: Languages like Python, Ruby, Java, and JavaScript (with runtimes like Node.js) can be used to build APIs.
Backend Frameworks: Frameworks like Express.js (for JavaScript), Django (for Python), Ruby on Rails (for Ruby), and Spring (for Java) provide a structured foundation for building servers, handling routing, middleware, and errors, allowing developers to focus on the app’s logic.
Databases are crucial for storing, organizing, and managing data, optimized for speed, security, and scalability. They are classified into two main types:
Relational Databases: These store data in tables with rows and columns and use SQL (Structured Query Language) to query and manipulate data (e.g., MySQL, PostgreSQL). They are suitable for structured data with clear relationships.
Non-Relational Databases (NoSQL): These databases offer more flexibility, handling unstructured or semi-structured data (e.g., MongoDB, Redis). They are useful for large data volumes, real-time analytics, or flexible data models.
ORM (Object-Relational Mappers): ORMs simplify database interactions by allowing queries to be written in the syntax of the chosen programming language, instead of raw SQL.
Backend Architectures:
Monolithic Architecture: All application components are combined into a single codebase. It’s simple to develop and deploy but can become difficult to scale.
Microservices Architecture: An application is broken down into independent services communicating via APIs. This is good for large-scale applications requiring flexibility and scalability.
Serverless Architecture: Allows developers to write code without managing the underlying infrastructure. Cloud providers manage provisioning, scaling, and server management.
Other important concepts include:
Authentication: Securing applications by verifying user identity and using techniques like JWTs (JSON Web Tokens) to authenticate users.
Authorization: Managing access to resources based on the user’s role or permissions.
Middleware: Functions that intercept requests, allowing for actions like error handling, authorization, and rate limiting.
Rate Limiting: Restricting the number of requests a user can make within a given time frame, preventing server overload or abuse.
Bot Protection: Techniques that detect and block automated traffic from malicious bots.
In summary, backend development involves creating the logic and infrastructure that power applications, handling data storage, user authentication, and ensuring smooth performance.
Subscription System Backend Development
A subscription system, as discussed in the sources, involves several key components related to backend development:
Core Functionality: The primary goal of a subscription system is to manage users, their subscriptions, and related business logic, including handling real money.
Backend Focus: The backend handles all the logic, from processing data to managing users and interacting with databases, while the front end is focused on the user interface.
Subscription Tracking API: This API is built to manage subscriptions, handle user authentication, manage data, and automate email reminders. It includes functionalities such as:
User Authentication: Using JSON Web Tokens (JWTs) to authenticate users.
Database Modeling and Relationships: Utilizing databases like MongoDB and Mongoose to model data.
CRUD Operations: Performing create, read, update, and delete operations on user and subscription data.
Subscription Management: Managing subscription lifecycles, including calculating renewal dates and sending reminders.
Global Error Handling: Implementing middleware for input validation, error logging, and debugging.
Rate Limiting and Bot Protection: Securing the API with tools like Arcjet to prevent abuse.
Automated Email Reminders: Using services like Upstash to schedule email notifications for subscription renewals.
API Endpoints: These are specific URLs that handle different actions related to subscriptions. Examples include:
GET /subscriptions: Retrieves all subscriptions.
GET /subscriptions/:id: Retrieves details of a specific subscription.
POST /subscriptions: Creates a new subscription.
PUT /subscriptions/:id: Updates an existing subscription.
DELETE /subscriptions/:id: Deletes a subscription.
GET /subscriptions/user/:id: Retrieves all subscriptions for a specific user.
PUT /subscriptions/:id/cancel: Cancels a user subscription.
GET /subscriptions/renewals: Retrieves all upcoming renewals.
Data Validation: Ensuring that the data sent to the backend is correct, for example, by using validation middleware to catch any errors.
Database Interaction: Using queries to store, retrieve, update, and delete data in the database. Object-relational mappers (ORMs) like Mongoose are used to simplify these interactions.
Workflows: Automating tasks using systems like Upstash, particularly for scheduling notifications or other business logic. This includes:
Triggering workflows when a new subscription is created.
Retrieving subscription details from the database.
Checking the subscription status and renewal date.
Scheduling email reminders before the renewal date.
Email Reminders: The system sends automated email reminders for upcoming subscription payments, allowing users to cancel subscriptions on time.
Deployment: The subscription system can be deployed to a virtual private server (VPS) for better performance, control, and customization. This requires server management, database backups, and real-world deployment skills.
Security: Includes measures to protect the system from abuse such as rate limiting and bot protection.
In summary, a subscription system involves building a comprehensive backend infrastructure that handles user authentication, manages subscription data, ensures data integrity, and automates notifications, all while providing a secure and scalable environment.
Database Management in Backend Development
Database management is a critical aspect of backend development, involving the storage, organization, and management of data. Databases are optimized for speed, security, and scalability and are essential for applications to function effectively. The sources discuss key aspects of database management, including types of databases, how applications interact with them, and methods to manage data efficiently:
Types of Databases:
Relational Databases (SQL): These databases store data in structured tables with rows and columns. They use SQL (Structured Query Language) for querying and manipulating data. Relational databases are suitable for structured data with clear relationships and are often used in banking, e-commerce, and inventory management. Popular examples include MySQL and PostgreSQL.
Non-Relational Databases (NoSQL): These databases offer more flexibility and do not rely on a rigid table structure. They are designed to handle unstructured or semi-structured data, making them suitable for social media apps, IoT devices, and big data analytics. NoSQL databases include document-based databases like MongoDB, which store data in JSON-like documents, and key-value pair databases like Redis.
Database Interactions:
Client-Server Communication: The client sends a request to the backend, which processes the request and determines what data is needed.
Queries: The backend sends queries to the database to fetch, update, or delete data. In SQL databases, queries use SQL syntax, while in NoSQL databases like MongoDB, queries are often similar to JavaScript syntax.
Data Retrieval: The database returns the requested data to the server, which then formats it (usually as JSON) and sends it back to the client.
Data Management:
CRUD Operations: Databases support CRUD (Create, Read, Update, Delete) operations, which are fundamental for managing resources.
Raw Queries: Developers can write raw queries to interact with the database, offering full control but potentially increasing complexity and errors.
ORMs (Object-Relational Mappers): ORMs simplify database interactions by allowing developers to write queries in the syntax of their chosen programming language instead of raw SQL. Popular ORMs include Prisma and Drizzle for SQL databases and Mongoose for MongoDB. ORMs speed up development and help prevent errors.
Database Selection:
Structured vs. Unstructured Data: The choice between relational and non-relational databases depends on the type of data and the application’s needs. Relational databases are best for structured data with clear relationships, while non-relational databases are suitable for massive, unstructured data and flexible data models.
Database Modeling:
Schemas: Databases utilize schemas to define the structure of data.
Models: Models are created from the schema to create instances of the data structure, for example, User or Subscription.
Key Considerations:
Speed: Databases are optimized for fast data retrieval and storage.
Security: Databases implement security measures to protect data.
Scalability: Databases are designed to handle growing amounts of data and user traffic.
MongoDB:
MongoDB Atlas: A cloud-based service that allows for easy creation and hosting of MongoDB databases, including free options.
Mongoose: An ORM used with MongoDB to create database models and schemas. Mongoose also simplifies data validation and other model-level operations.
In summary, effective database management involves choosing the right type of database for the application’s needs, using efficient methods to interact with the database, and ensuring that data is stored, retrieved, and managed securely and scalably. The use of ORMs can significantly simplify these processes, allowing developers to focus on application logic rather than low-level database operations.
API Development Fundamentals
API (Application Programming Interface) development is a crucial part of backend development, facilitating communication between different software systems. APIs define the rules and protocols that allow applications to interact with each other, enabling the exchange of data and functionality. The sources provide a detailed overview of API development, covering key concepts, components, types, and best practices:
Fundamentals of APIs:
Definition: An API is an interface that enables different applications to communicate and exchange data. It acts like a “waiter” that takes requests from the client (e.g., a web app or mobile app) to the backend (the “kitchen”) and returns the requested data.
Client-Server Communication: APIs facilitate how clients and servers communicate, using protocols such as HTTP.
Function: APIs enable apps to fetch new data, manage resources, and perform actions on the backend.
Key Components of APIs:
HTTP Methods (Verbs): These methods define the type of action to be taken on a resource.
GET: Retrieves data from the server. For example, GET /users to get a list of users.
POST: Creates a new resource on the server. For example, POST /users to create a new user.
PUT/PATCH: Updates an existing resource. For example, PUT /users/:id to update a specific user.
DELETE: Removes a resource from the server. For example, DELETE /users/:id to delete a specific user.
Endpoints: These are URLs that specify a particular resource or action on the backend. For example, /users, /subscriptions and /auth/signup.
Headers: Headers contain metadata about the request or response, such as authentication tokens, content type, or caching instructions. For example, an authorization header often includes a bearer token for verifying the user’s identity.
Request Body: The request body contains the data being sent to the server, usually in JSON format. This is used in POST and PUT requests.
Response Body: The response body contains the data sent back by the server after processing the request, typically also in JSON format.
Status Codes: These codes indicate the outcome of an API call.
200 (OK): Indicates a successful request.
201 (Created): Indicates a resource has been successfully created.
400 (Bad Request): Indicates something went wrong with the request.
404 (Not Found): Indicates that the requested resource does not exist.
401 (Unauthorized): Indicates that the user does not have permission to access the resource.
500 (Internal Server Error): Indicates a server-side error.
API Design:
Naming Conventions: Use nouns in URLs to specify resources and HTTP verbs to specify actions. For example, use /users instead of /getUsers. Use plural nouns for resources, and use hyphens to connect words together in URLs.
RESTful Principles: Follow the principles of RESTful architecture which is the most common thing that you will see in web development, for example, use standard HTTP methods like GET, POST, PUT, and DELETE and maintain statelessness of requests.
Types of APIs:
RESTful APIs: These are the most common type of APIs, following a structured approach where clients interact with resources via URLs and standard HTTP methods. RESTful APIs are stateless and typically use JSON.
GraphQL APIs: These APIs offer more flexibility by allowing clients to request only the data they need via a single endpoint, which avoids over-fetching or under-fetching data. This approach is beneficial for complex applications.
API Development Process:
Backend Language: Use languages such as Python, Ruby, Java, or JavaScript runtimes like Node, Bun, or Deno.
Backend Frameworks: Utilize frameworks like Express (for JavaScript), Django (for Python), Ruby on Rails (for Ruby), or Spring (for Java) to provide a structured foundation for building servers and handling repetitive tasks such as routing, middleware, and error handling.
Database Management: Connect your API to a database to store and retrieve data, using either raw queries or ORMs.
Middleware: Implement middleware for input validation, error handling, authentication, rate limiting and bot protection.
Security: Implement security measures such as authorization and protection from malicious users.
Authorization: Ensure only authorized users can access certain routes by verifying tokens included in requests.
Rate Limiting: Restrict the number of requests a user can make within a specific period to prevent abuse.
Bot Protection: Implement systems to detect and block bot traffic.
Example API Endpoints:
/api/v1/auth/signup (POST): Creates a new user.
/api/v1/auth/signin (POST): Signs in an existing user.
/api/v1/users (GET): Retrieves a list of users.
/api/v1/users/:id (GET): Retrieves a specific user by ID.
/api/v1/subscriptions (GET): Retrieves all subscriptions.
/api/v1/subscriptions (POST): Creates a new subscription.
/api/v1/subscriptions/user/:id (GET): Retrieves subscriptions of a specific user.
Testing APIs:
Use tools like HTTP clients (e.g., HTTPie, Postman, Insomnia, Bruno) to test API endpoints and simulate requests.
Test with different HTTP methods and request bodies to ensure correct functionality.
In summary, API development involves designing and building interfaces that allow applications to communicate effectively. This includes defining endpoints, choosing HTTP methods, structuring request and response bodies, handling errors, and implementing security measures. The use of backend frameworks and adherence to best practices ensure that APIs are scalable, maintainable, and secure.
Backend Application Server Deployment
Server deployment is a critical step in making a backend application accessible to users. It involves setting up the necessary infrastructure and configurations to host the application, making it available over the internet. The sources provide key insights into server deployment, covering essential aspects such as types of servers, deployment processes, and tools involved:
Types of Servers:
Physical Servers: These are actual machines in data centers that you can own or rent.
Virtual Private Servers (VPS): A VPS is like having your own computer in the cloud, offering dedicated resources, full control, and customization without the high cost of a physical machine. VPS hosting is suitable for deploying APIs, full-sta
ck applications, databases, and other server-side applications.
Cloud Servers: Cloud providers such as AWS provide servers that can be rented and configured through their services.
Serverless Architecture: This allows developers to write code without managing the underlying infrastructure, with cloud providers handling provisioning, scaling, and server management.
Deployment Process:
Setting up the Server: This involves configuring the server’s operating system (often Linux) and installing necessary software, such as Node.js, npm, and Git.
Transferring Codebase: Use Git to transfer your application’s code from your local development environment to the server. This usually involves pushing code to a repository and cloning it on the server.
Installing Dependencies: Install all the application’s dependencies on the server using a package manager like npm.
Configuring Environment Variables: Set up environment variables on the server to handle different environments such as development, staging, or production. This involves adding environment variables for databases, API keys, and other sensitive information.
Running the Application: Use a process manager like pm2 to ensure that the application runs continuously, even if it crashes or the server reboots. A process manager also allows for background execution.
Testing: After deploying the server, testing API endpoints through HTTP clients is essential to ensure the deployed application functions as expected.
Key Considerations for VPS Hosting:
Dedicated Resources: A VPS provides dedicated RAM and SSD storage for better performance.
Full Control: You have full control and customization over your server, allowing you to run applications as desired.
Real-World Skills: Hosting on a VPS provides hands-on experience with server management, database backup, and real-world deployments.
Cost-Effective: VPS hosting is a cost-effective alternative to physical servers and provides better performance than regular shared hosting.
Tools and Technologies
Git: A version control system for managing and transferring code.
npm: A package manager used for installing packages, libraries, and tools needed for Node.js applications.
pm2: A process manager for Node.js applications that ensures applications keep running.
SSH: Secure Shell Protocol is used to remotely manage the server through a terminal.
Operating System: Linux, like Ubuntu, is often the preferred choice for hosting servers.
Deployment Workflow
Development: Develop the application on a local machine using a code editor or IDE.
Testing: Test the application locally to ensure all features work as expected before deploying.
Code Transfer: Use Git to upload the code to a repository like GitHub, and then clone the repository to the VPS.
Environment Setup: Configure all necessary environment variables on the server.
Dependency Installation: Install all the required packages using npm install.
Application Execution: Run the application using pm2 to start the process and keep it running in the background.
Monitoring: Regularly monitor the server to ensure optimal performance and identify any potential issues.
In summary, server deployment is a crucial process for making a backend application accessible to users. It involves setting up a server (physical, virtual, or serverless), transferring the codebase, installing dependencies, configuring the environment, and running the application. VPS hosting offers dedicated resources, full control, and real-world deployment skills, making it a valuable option for deploying backend applications. Following best practices and using the right tools will ensure a smooth and successful deployment process.
Complete Backend Course | Build and Deploy Your First Production-Ready API
Affiliate Disclosure: This blog may contain affiliate links, which means I may earn a small commission if you click on the link and make a purchase. This comes at no additional cost to you. I only recommend products or services that I believe will add value to my readers. Your support helps keep this blog running and allows me to continue providing you with quality content. Thank you for your support!
Affiliate Disclosure: This blog may contain affiliate links, which means I may earn a small commission if you click on the link and make a purchase. This comes at no additional cost to you. I only recommend products or services that I believe will add value to my readers. Your support helps keep this blog running and allows me to continue providing you with quality content. Thank you for your support!
This PDF excerpt details a PyTorch deep learning course. The course teaches PyTorch fundamentals, including tensor manipulation and neural network architecture. It covers various machine learning concepts, such as linear and non-linear regression, classification (binary and multi-class), and computer vision. Practical coding examples using Google Colab are provided throughout, demonstrating model building, training, testing, saving, and loading. The course also addresses common errors and troubleshooting techniques, emphasizing practical application and experimentation.
PyTorch Deep Learning Study Guide
Quiz
What is the difference between a scalar and a vector? A scalar is a single number, while a vector has magnitude and direction and is represented by multiple numbers in a single dimension.
How can you determine the number of dimensions of a tensor? You can determine the number of dimensions of a tensor by counting the number of pairs of square brackets, or by calling the endim function on a tensor.
What is the purpose of the .shape attribute of a tensor? The .shape attribute of a tensor returns a tuple that represents the size of each dimension of the tensor. It indicates the number of elements in each dimension, providing information about the tensor’s structure.
What does the dtype of a tensor represent? The dtype of a tensor represents the data type of the elements within the tensor, such as float32, float16, or int32. It specifies how the numbers are stored in memory, impacting precision and memory usage.
What is the difference between reshape and view when manipulating tensors? Both reshape and view change the shape of a tensor. Reshape copies data and allocates new memory, while view creates a new view of the existing tensor data, meaning that changes in the view will impact the original data.
Explain what tensor aggregation is and provide an example. Tensor aggregation involves reducing the number of elements in a tensor by applying an operation like min, max, or mean. For example, finding the minimum value in a tensor reduces all of the elements to a single number.
What does the stack function do to tensors and how is it different from unsqueeze? The stack function concatenates a sequence of tensors along a new dimension, increasing the dimensions of the tensor by one. The unsqueeze adds a single dimension to a target tensor at a specified dimension.
What does the term “device agnostic code” mean, and why is it important in PyTorch? Device-agnostic code in PyTorch means writing code that can run on either a CPU or GPU without modification. This is important for portability and leveraging the power of GPUs when available.
In PyTorch, what is a “parameter”, how is it created, and what special property does it have? A “parameter” is a special type of tensor created using nn.parameter that is a module attribute. When assigned as a module attribute, parameters are automatically added to a module’s parameter list, enabling gradient tracking during training.
Explain the primary difference between the training loop and the testing/evaluation loop in a neural network. The training loop involves the forward pass, loss calculation, backpropagation and updating the model’s parameters through optimization, whereas the testing/evaluation loop involves only the forward pass and loss and/or accuracy calculation without gradient calculation and parameter updates.
Essay Questions
Discuss the importance of tensor operations in deep learning. Provide specific examples of how reshaping, indexing, and aggregation are utilized.
Explain the significance of data types in PyTorch tensors, and elaborate on the potential issues that can arise from data type mismatches during tensor operations.
Compare and contrast the use of reshape, view, stack, squeeze, and unsqueeze when dealing with tensors. In what scenarios might one operation be preferable over another?
Describe the key steps involved in the training loop of a neural network. Explain the role of the loss function, optimizer, and backpropagation in the learning process.
Explain the purpose of the torch.utils.data.DataLoader and the advantages it provides. Discuss how it can improve the efficiency and ease of use of data during neural network training.
Glossary
Scalar: A single numerical value. It has no direction or multiple dimensions.
Vector: A mathematical object that has both magnitude and direction, often represented as an ordered list of numbers, i.e. in one dimension.
Matrix: A rectangular array of numbers arranged in rows and columns, i.e. in two dimensions.
Tensor: A generalization of scalars, vectors, and matrices. It can have any number of dimensions.
Dimension (dim): Refers to the number of indices needed to address individual elements in a tensor, which is also the number of bracket pairs.
Shape: A tuple that describes the size of each dimension of a tensor.
Dtype: The data type of the elements in a tensor, such as float32, int64, etc.
Indexing: Selecting specific elements or sub-tensors from a tensor using their positions in the dimensions.
Reshape: Changing the shape of a tensor while preserving the number of elements.
View: Creating a new view of a tensor’s data without copying. Changing the view will change the original data, and vice versa.
Aggregation: Reducing the number of elements in a tensor by applying an operation (e.g., min, max, mean).
Stack: Combining multiple tensors along a new dimension.
Squeeze: Removing dimensions of size 1 from a tensor.
Unsqueeze: Adding a new dimension of size 1 to a tensor.
Device: The hardware on which computations are performed (e.g., CPU, GPU).
Device Agnostic Code: Code that can run on different devices (CPU or GPU) without modification.
Parameter (nn.Parameter): A special type of tensor that can be tracked during training, is a module attribute and is automatically added to a module’s parameter list.
Epoch: A complete pass through the entire training dataset.
Training Loop: The process of iterating through the training data, calculating loss, and updating model parameters.
Testing/Evaluation Loop: The process of evaluating model performance on a separate test dataset.
DataLoader: A utility in PyTorch that creates an iterable over a dataset, managing batching and shuffling of the data.
Flatten: A layer that flattens a multi-dimensional tensor into a single dimension.
PyTorch Deep Learning Fundamentals
Okay, here’s a detailed briefing document summarizing the key themes and ideas from the provided source, with relevant quotes included:
Briefing Document: PyTorch Deep Learning Fundamentals
Introduction:
This document summarizes the core concepts and practical implementations of PyTorch for deep learning, as detailed in the provided course excerpts. The focus is on tensors, their properties, manipulations, and usage within the context of neural network building and training.
I. Tensors: The Building Blocks
Definition: Tensors are the fundamental data structure in PyTorch, used to encode data as numbers. Traditional terms like scalars, vectors, and matrices are all represented as tensors in PyTorch.
“basically anytime you encode data into numbers, it’s of a tensor data type.”
Scalars: A single number.
“A single number, number of dimensions, zero.”
Vectors: Have magnitude and direction and typically have more than one number.
“a vector typically has more than one number”
“a number with direction, number of dimensions, one”
Matrices: Two-dimensional tensors.
“a matrix, a tensor.”
Dimensions (ndim): Represented by the number of square bracket pairings in the tensor’s definition.
“dimension is like number of square brackets…number of pairs of closing square brackets.”
Shape: Defines the size of each dimension in a tensor.
For example, a vector [1, 2] has a shape of (2,) or (2,1). A matrix [[1, 2], [3, 4]] has a shape of (2, 2).
“the shape of the vector is two. So we have two by one elements.”
Data Type (dtype): Tensors have a data type (e.g., float32, float16, int32, long). The default dtype in PyTorch is float32.
“the default data type in pytorch, even if it’s specified as none is going to come out as float 32.”
It’s important to ensure tensors have compatible data types when performing operations to avoid errors.
Device: Tensors can reside on different devices, such as the CPU or GPU (CUDA). Device-agnostic code is recommended to handle this.
II. Tensor Creation and Manipulation
Creation:torch.tensor(): Creates tensors from lists or NumPy arrays.
torch.zeros(): Creates a tensor filled with zeros.
torch.ones(): Creates a tensor filled with ones.
torch.arange(): Creates a 1D tensor with a range of values.
torch.rand(): Creates a tensor with random values.
torch.randn(): Creates a tensor with random values from normal distribution.
torch.zeros_like()/torch.ones_like()/torch.rand_like(): Creates tensors with the same shape as another tensor.
Indexing: Tensors can be accessed via numerical indices, allowing one to extract elements or subsets.
“This is where the square brackets, the pairings come into play.”
Reshaping:reshape(): Changes the shape of a tensor, provided the total number of elements remains the same.
view(): Creates a view of the tensor, sharing the same memory, but does not change the shape of the original tensor. Modifying a view changes the original tensor.
Stacking: torch.stack() concatenates tensors along a new dimension. torch.vstack() and torch.hstack() are similar along specific axes.
Squeezing and Unsqueezing: squeeze() removes dimensions of size 1, and unsqueeze() adds dimensions of size 1.
Element-wise operations: standard operations like +, -, *, / are applied element-wise.
If reassigning the tensor variable (e.g., tensor = tensor * 10), the original tensor will be changed.
Matrix Multiplication: Use @ operator (or .matmul() function). Inner dimensions must match for valid matrix multiplication.
“inner dimensions must match.”
Transpose: tensor.T will tranpose a tensor (swap rows/columns)
Aggregation: Functions like torch.min(), torch.max(), torch.mean(), and their respective index finders like torch.argmin()/torch.argmax() reduce the tensor to scalar values.
“So you’re turning it from nine elements to one element, hence aggregation.”
Attributes: tensors have attributes like dtype, shape (or size), and can be retrieved with tensor.dtype or tensor.shape (or tensor.size())
III. Neural Networks with PyTorch
torch.nn Module: The module provides building blocks for creating neural networks.
“nn is the building block layer for neural networks.”
nn.Module: The base class for all neural network modules. Custom models should inherit from this class.
Linear Layers (nn.Linear): Represents a linear transformation (y = Wx + b).
Activation Functions: Non-linear functions such as ReLU (Rectified Linear Unit) and Sigmoid, enable neural networks to learn complex patterns.
“one divided by one plus torch exponential of negative x.”
Parameter (nn.Parameter): A special type of tensor that is added to a module’s parameter list, allowing automatic gradient tracking
“Parameters are torch tensor subclasses…automatically added to the list of its parameters.”
It’s critical to set requires_grad=True for parameters that need to be optimized during training.
Sequential Container (nn.Sequential): A convenient way to create models by stacking layers in a sequence.
Forward Pass: The computation of the model’s output given the input data. This is implemented in the forward() method of a class inheriting from nn.Module.
“Do the forward pass.”
Loss Functions: Measure the difference between the predicted and actual values.
“Calculate the loss.”
Optimizers: Algorithms that update the model’s parameters based on the loss function during training (e.g., torch.optim.SGD).
“optimise a step, step, step.”
Use optimizer.zero_grad() to reset the gradients before each training step.
Training Loop: The iterative process of:
Forward pass
Calculate Loss
Optimizer zero grad
Loss backwards
Optimizer Step
Evaluation Mode: Set the model to model.eval() before doing inference (testing/evaluation), and it sets requires_grad=False
IV. Data Handling
torch.utils.data.Dataset: A class for representing datasets, and custom datasets can be built using this.
torch.utils.data.DataLoader: An iterable to batch data for use during training.
“This creates a Python iterable over a data set.”
Transforms: Functions that modify data (e.g., images) before they are used in training. They can be composed together.
“This little transforms module, the torch vision library will change that back to 64 64.”
Device Agnostic Data: Send data to the appropriate device (CPU/GPU) using .to(device)
NumPy Interoperability: PyTorch can handle NumPy arrays with torch.from_numpy(), but the data type needs to be changed to torch.float32 from float64
V. Visualization
Matplotlib: Library is used for visualizing plots and images.
“Our data explorers motto is visualize, visualize, visualize.”
plt.imshow(): Displays images.
plt.plot(): Displays data in a line plot.
VI. Key Practices
Visualize, Visualize, Visualize: Emphasized for data exploration.
Device-Agnostic Code: Aim to write code that can run on both CPU and GPU.
Typo Avoidance: Be careful to avoid typos as they can cause errors.
VII. Specific Examples/Concepts Highlighted:
Image data: tensors are often (height, width, color_channels) or (batch_size, color_channels, height, width)
Linear regression: the formula y=weight * x + bias
Non linear transformations: using activation functions to introduce non-linearity
Multi-class data sets: Using make_blobs function to generate multiple data classes.
Convolutional layers (nn.Conv2d): For processing images, which require specific parameters like in-channels, out-channels, kernel size, stride, and padding.
Flatten layer (nn.Flatten): Used to flatten the input into a vector before a linear layer.
Data Loaders: Batches of data in an iterable for training or evaluation loops.
Conclusion:
This document provides a foundation for understanding the essential elements of PyTorch for deep learning. It highlights the importance of tensors, their manipulation, and their role in building and training neural networks. Key concepts such as the training loop, device-agnostic coding, and the value of visualization are also emphasized.
This briefing should serve as a useful reference for anyone learning PyTorch and deep learning fundamentals from these course materials.
PyTorch Fundamentals: Tensors and Neural Networks
1. What is a tensor in PyTorch and how does it relate to scalars, vectors, and matrices?
In PyTorch, a tensor is the fundamental data structure used to represent data. Think of it as a generalization of scalars, vectors, and matrices. A scalar is a single number (0 dimensions), a vector has magnitude and direction, and is represented by one dimension, while a matrix has two dimensions. Tensors can have any number of dimensions and can store numerical data of various types. In essence, when you encode any kind of data into numbers within PyTorch, it becomes a tensor. PyTorch uses the term tensor to refer to any of these data types.
2. How are the dimensions and shape of a tensor determined?
The dimension of a tensor can be determined by the number of square bracket pairs used to define it. For example, [1, 2, 3] is a vector with one dimension (one pair of square brackets), and [[1, 2], [3, 4]] is a matrix with two dimensions (two pairs). The shape of a tensor refers to the size of each dimension. For instance, [1, 2, 3] has a shape of (3), meaning 3 elements in the first dimension, while [[1, 2], [3, 4]] has a shape of (2, 2), meaning 2 rows and 2 columns. Note: The shape is determined by the number of elements in each dimension.
3. How do you create tensors with specific values in PyTorch?
PyTorch provides various functions to create tensors:
torch.tensor([value1, value2, …]) directly creates a tensor from a Python list. You can control the data type (dtype) of the tensor during its creation by passing the dtype argument.
torch.zeros(size) creates a tensor filled with zeros of the specified size.
torch.ones(size) creates a tensor filled with ones of the specified size.
torch.rand(size) creates a tensor filled with random values from a uniform distribution (between 0 and 1) of the specified size.
torch.arange(start, end, step) creates a 1D tensor containing values from start to end (exclusive), incrementing by step.
torch.zeros_like(other_tensor) and torch.ones_like(other_tensor) create tensors with the same shape and dtype as the other_tensor, filled with zeros or ones respectively.
4. What is the importance of data types (dtypes) in tensors, and how can they be changed?
Data types determine how data is stored in memory, which has implications for precision and memory usage. The default data type in PyTorch is torch.float32. To change a tensor’s data type, you can use the .type() method, e.g. tensor.type(torch.float16) will convert a tensor to 16 bit float. While PyTorch can often automatically handle operations between different data types, using the correct data type can prevent unexpected errors or behaviors. It’s good to be explicit.
5. What are tensor attributes such as shape, size, and Dtype and how do they relate to tensor manipulation?
These are attributes that can be used to understand, manipulate, and diagnose issues with tensors.
Shape: An attribute that represents the dimensions of the tensor. For example, a matrix might have a shape of (3, 4), indicating it has 3 rows and 4 columns. You can access this information by using .shape
Size: Acts like .shape but is a method i.e. .size(). It will return the dimensions of the tensor.
Dtype: Stands for data type. This defines the way the data is stored and impacts precision and memory use. You can access this by using .dtype.
These attributes can be used to diagnose issues, for example you might want to ensure all tensors have compatible data types and dimensions for multiplication.
6. How do operations like reshape, view, stack, unsqueeze, and squeeze modify the shape of tensors?
reshape(new_shape): Changes the shape of a tensor to a new shape, as long as the total number of elements remains the same, a tensor with 9 elements can be reshaped into (3, 3) or (9, 1) for example.
view(new_shape): Similar to reshape, but it can only be used to change the dimensions of a contiguous tensor (a tensor that has elements in continuous memory) and will also share the same memory as the original tensor meaning changes will impact each other.
stack(tensors, dim): Concatenates multiple tensors along a new dimension (specified by dim) and increases the overall dimensionality by 1.
unsqueeze(dim): Inserts a new dimension of size one at a specified position, increasing the overall dimensionality by 1.
squeeze(): Removes all dimensions with size one in a tensor, reducing overall dimensionality of a tensor.
7. What are the key components of a basic neural network training loop?
The key components include:
Forward Pass: The input data goes through the model, producing the output.
Calculate Loss: The error is calculated by comparing the output to the true labels.
Zero Gradients: Previous gradients are cleared before starting a new iteration to prevent accumulating them across iterations.
Backward Pass: The error is backpropagated through the network to calculate gradients.
Optimize Step: The model’s parameters are updated based on the gradients using an optimizer.
Testing / Validation Step: The model’s performance is evaluated against a test or validation dataset.
8. What is the purpose of torch.nn.Module and torch.nn.Parameter in PyTorch?
torch.nn.Module is a base class for creating neural network models. Modules provide a way to organize and group layers and functions, such as linear layers, activation functions, and other model components. It keeps track of learnable parameters.
torch.nn.Parameter is a special subclass of torch.Tensor that is used to represent the learnable parameters of a model. When parameters are assigned as module attributes, PyTorch automatically registers them for gradient tracking and optimization. It tracks gradient when ‘requires_grad’ is set to true. Setting requires_grad=True on parameters tells PyTorch to calculate and store gradients for them during backpropagation.
PyTorch: A Deep Learning Framework
PyTorch is a machine learning framework written in Python that is used for deep learning and other machine learning tasks [1]. The framework is popular for research and allows users to write fast deep learning code that can be accelerated by GPUs [2, 3].
Key aspects of PyTorch include:
Tensors: PyTorch uses tensors as a fundamental building block for numerical data representation. These can be of various types, and neural networks perform mathematical operations on them [4, 5].
Neural Networks: PyTorch is often used for building neural networks, including fully connected and convolutional neural networks [6]. These networks are constructed using layers from the torch.nn module [7].
GPU Acceleration: PyTorch can leverage GPUs via CUDA to accelerate machine learning code. GPUs are fast at numerical calculations, which are very important in deep learning [8-10].
Flexibility: The framework allows for customization, and users can combine layers in different ways to build various kinds of neural networks [6, 11].
Popularity: PyTorch is a popular research machine learning framework, with 58% of papers with code implemented using PyTorch [2, 12, 13]. It is used by major organizations such as Tesla, OpenAI, Facebook, and Microsoft [14-16].
The typical workflow when using PyTorch for deep learning includes:
Data Preparation: The first step is getting the data ready, which can involve numerical encoding, turning the data into tensors, and loading the data [17-19].
Model Building: PyTorch models are built using the nn.Module class as a base and defining the forward computation [20-23]. This includes choosing appropriate layers and defining their interconnections [11].
Model Fitting: The model is fitted to the data using an optimization loop and a loss function [19]. This involves calculating gradients using back propagation and updating model parameters using gradient descent [24-27].
Model Evaluation: Model performance is evaluated by measuring how well the model performs on unseen data, using metrics such as accuracy and loss [28].
Saving and Loading: Trained models can be saved and reloaded using the torch.save, torch.load, and torch.nn.Module.load_state_dict functions [29, 30].
Some additional notes on PyTorch include:
Reproducibility: Randomness is important in neural networks; it’s necessary to set random seeds to ensure reproducibility of experiments [31, 32].
Device Agnostic Code: It’s useful to write device agnostic code, which means code that can run on either a CPU or a GPU [33, 34].
Integration: PyTorch integrates well with other libraries, such as NumPy, which is useful for pre-processing and other numerical tasks [35, 36].
Documentation: The PyTorch website and documentation serve as the primary resource for learning about the framework [2, 37, 38].
Community Support: Online forums and communities provide places to ask questions and share code [38-40].
Overall, PyTorch is a very popular and powerful tool for deep learning and machine learning [2, 12, 13]. It provides tools to enable users to build, train, and deploy neural networks with ease [3, 16, 41].
Understanding Machine Learning Models
Machine learning models learn patterns from data, which is converted into numerical representations, and then use these patterns to make predictions or classifications [1-4]. The models are built using code and math [1].
Here are some key aspects of machine learning models based on the sources:
Data Transformation: Machine learning models require data to be converted into numbers, a process sometimes called numerical encoding [1-4]. This can include images, text, tables of numbers, audio files, or any other type of data [1].
Pattern Recognition: After data is converted to numbers, machine learning models use algorithms to find patterns in that data [1, 3-5]. These patterns can be complex and are often not interpretable by humans [6, 7]. The models can learn patterns through code, using algorithms to find the relationships in the numerical data [5].
Traditional Programming vs. Machine Learning: In traditional programming, rules are hand-written to manipulate input data and produce desired outputs [8]. In contrast, machine learning algorithms learn these rules from data [9, 10].
Supervised Learning: Many machine learning algorithms use supervised learning. This involves providing input data along with corresponding output data (features and labels), and then the algorithm learns the relationships between the inputs and outputs [9].
Parameters: Machine learning models learn parameters that represent the patterns in the data [6, 11]. Parameters are values that the model sets itself [12]. These are often numerical and can be large, sometimes numbering in the millions or even trillions [6].
Explainability: The patterns learned by a deep learning model are often uninterpretable by a human [6]. Sometimes, these patterns are lists of numbers in the millions, which is difficult for a person to understand [6, 7].
Model Evaluation: The performance of a machine learning model can be evaluated by making predictions and comparing those predictions to known labels or targets [13-15]. The goal of training a model is to move from some unknown parameters to a better, known representation of the data [16]. The loss function is used to measure how wrong a model’s predictions are compared to the ideal predictions [17].
Model Types: Machine learning models include:
Linear Regression: Models which use a linear formula to draw patterns in data [18]. These models use parameters such as weights and biases to perform forward computation [18].
Neural Networks: Neural networks are the foundation of deep learning [19]. These are typically used for unstructured data such as images [19, 20]. They use a combination of linear and non-linear functions to draw patterns in data [21-23].
Convolutional Neural Networks (CNNs): These are a type of neural network often used for computer vision tasks [19, 24]. They process images through a series of layers, identifying spatial features in the data [25].
Gradient Boosted Machines: Algorithms such as XGBoost are often used for structured data [26].
Use Cases: Machine learning can be applied to virtually any problem where data can be converted into numbers and patterns can be found [3, 4]. However, simple rule-based systems are preferred if they can solve a problem, and machine learning should not be used simply because it can [5, 27]. Machine learning is useful for complex problems with long lists of rules [28, 29].
Model Training: The training process is iterative and involves multiple steps, and it can also be seen as an experimental process [30, 31]. In each step, the machine learning model is used to make predictions and its parameters are adjusted to minimize error [13, 32].
In summary, machine learning models are algorithms that can learn patterns from data by converting the data into numbers, using various algorithms, and adjusting parameters to improve performance. Models are typically evaluated against known data with a loss function, and there are many types of models and use cases depending on the type of problem [6, 9-11, 13, 32].
Understanding Neural Networks
Neural networks are a type of machine learning model inspired by the structure of the human brain [1]. They are comprised of interconnected nodes, or neurons, organized in layers, and they are used to identify patterns in data [1-3].
Here are some key concepts for understanding neural networks:
Structure:
Layers: Neural networks are made of layers, including an input layer, one or more hidden layers, and an output layer [1, 2]. The ‘deep’ in deep learning comes from having multiple hidden layers [1, 4].
Nodes/Neurons: Each layer is composed of nodes or neurons [4, 5]. Each node performs a mathematical operation on the input it receives.
Connections: Nodes in adjacent layers are connected, and these connections have associated weights that are adjusted during the learning process [6].
Architecture: The arrangement of layers and connections determines the neural network’s architecture [7].
Function:
Forward Pass: In a forward pass, input data is passed through the network, layer by layer [8]. Each layer performs mathematical operations on the input, using linear and non-linear functions [5, 9].
Mathematical Operations: Each layer is typically a combination of linear (straight line) and nonlinear (non-straight line) functions [9].
Nonlinearity: Nonlinear functions, such as ReLU or sigmoid, are critical for enabling the network to learn complex patterns [9-11].
Representation Learning: The network learns a representation of the input data by manipulating patterns and features through its layers [6, 12]. This representation is also called a weight matrix or weight tensor [13].
Output: The output of the network is a representation of the learned patterns, which can be converted into a human-understandable format [12-14].
Learning Process:
Random Initialization: Neural networks start with random numbers as parameters, and they adjust those numbers to better represent the data [15, 16].
Loss Function: A loss function is used to measure how wrong the model’s predictions are compared to ideal predictions [17-19].
Backpropagation: Backpropagation is an algorithm that calculates the gradients of the loss with respect to the model’s parameters [20].
Gradient Descent: Gradient descent is an optimization algorithm used to update model parameters to minimize the loss function [20, 21].
Types of Neural Networks:
Fully Connected Neural Networks: These networks have connections between all nodes in adjacent layers [1, 22].
Convolutional Neural Networks (CNNs): CNNs are particularly useful for processing images and other visual data, and they use convolutional layers to identify spatial features [1, 23, 24].
Recurrent Neural Networks (RNNs): These are often used for sequence data [1, 25].
Transformers: Transformers have become popular in recent years and are used in natural language processing and other applications [1, 25, 26].
Customization: Neural networks are highly customizable, and they can be designed in many different ways [4, 25, 27]. The specific architecture and layers used are often tailored to the specific problem at hand [22, 24, 26-28].
Neural networks are a core component of deep learning, and they can be applied to a wide range of problems including image recognition, natural language processing, and many others [22, 23, 25, 26]. The key to using neural networks effectively is to convert data into a numerical representation, design a network that can learn patterns from the data, and use optimization techniques to train the model.
Machine Learning Model Training
The model training process in machine learning involves using algorithms to adjust a model’s parameters so it can learn patterns from data and make accurate predictions [1, 2]. Here’s an overview of the key steps in training a model, according to the sources:
Initialization: The process begins with a model that has randomly assigned parameters, such as weights and biases [1, 3]. These parameters are what the model adjusts during training [4, 5].
Data Input: The training process requires input data to be passed through the model [1]. The data is typically split into a training set for learning and a test set for evaluation [6].
Forward Pass: Input data is passed through the model, layer by layer [7]. Each layer performs mathematical operations on the input, which may include both linear and nonlinear functions [8]. This forward computation produces a prediction, called the model’s output or sometimes logits [9, 10].
Loss Calculation: A loss function is used to measure how wrong the model’s predictions are compared to the ideal outputs [4, 11]. The loss function provides a numerical value that represents the error or deviation of the model’s predictions from the actual values [12]. The goal of the training process is to minimize this loss [12, 13].
Backpropagation: After the loss is calculated, the backpropagation algorithm computes the gradients of the loss with respect to the model’s parameters [2, 14, 15]. Gradients indicate the direction and magnitude of the change needed to reduce the loss [1].
Optimization: An optimizer uses the calculated gradients to update the model’s parameters [4, 11, 16]. Gradient descent is a commonly used optimization algorithm that adjusts the parameters to minimize the loss [1, 2, 15]. The learning rate is a hyperparameter that determines the size of the adjustments [5, 17].
Training Loop: The process of forward pass, loss calculation, backpropagation, and optimization is repeated iteratively through a training loop [11, 17, 18]. The training loop is where the model learns patterns on the training data [19]. Each iteration of the loop is called an epoch [20].
Evaluation: After training, the model’s performance is evaluated on a separate test data set [19]. This evaluation helps to measure how well the model has learned and whether it can generalize to unseen data [21].
In PyTorch, the training loop typically involves these steps:
Setting the model to training mode using model.train() [22, 23]. This tells the model to track gradients so that they can be used to update the model’s parameters [23].
Performing a forward pass by passing the data through the model.
Calculating the loss by comparing the model’s prediction with the actual data labels.
Setting gradients to zero using optimizer.zero_grad() [24].
Performing backpropagation using loss.backward() [15, 24].
Updating the model’s parameters using optimizer.step() [24].
During training, models can have two modes: train and evaluation.
The train mode tracks gradients and other settings to learn from the data [22, 23].
The evaluation mode turns off settings not needed for evaluation such as dropout, and it turns off gradient tracking to make the code run faster [25, 26].
Other key points about the model training process are:
Hyperparameters: The training process involves the use of hyperparameters, which are values set by the user, like the learning rate or the number of epochs [5, 23].
Experimentation: Model training is often an experimental process, with various parameters and settings being tried to find the best performing model [27, 28].
Data: The quality and quantity of the training data has a big effect on the model’s performance [29, 30].
Reproducibility: Randomness is an important part of training; to reproduce results, it is necessary to set random seeds [31, 32].
Visualization: Visualizing model training through metrics such as accuracy and loss curves is important in understanding whether the model is learning effectively [33-35].
Inference: When making predictions after training, the term inference is also used [36]. Inference uses a model to make predictions using unseen data [26, 36].
In summary, the model training process in machine learning involves iteratively adjusting a model’s parameters to minimize error by using the techniques of gradient descent and backpropagation [1, 2, 14, 15].
PyTorch Model Deployment
The sources discuss model deployment in the context of saving and loading models, which is a key part of making a model usable in an application or other context. Here’s a breakdown of model deployment methods based on the sources:
Saving Models:State Dictionary: The recommended way to save a PyTorch model is to save its state dictionary [1, 2]. The state dictionary contains the model’s learned parameters, such as weights and biases [3, 4]. This is more flexible than saving the entire model [2].
File Extension: PyTorch models are commonly saved with a .pth or .pt file extension [5].
Saving Process: The saving process involves creating a directory path, defining a model name, and then using torch.save() to save the state dictionary to the specified file path [6, 7].
Flexibility: Saving the state dictionary provides flexibility in how the model is loaded and used [8].
Loading Models:Loading State Dictionary: To load a saved model, you must create a new instance of the model class and then load the saved state dictionary into that instance [4]. This is done using the load_state_dict() method, along with torch.load(), which reads the file containing the saved state dictionary [9, 10].
New Instance: When loading a model, it’s important to remember that you must create a new instance of the model class, and then load the saved parameters into that instance using the load_state_dict method [4, 9, 11].
Loading Process: The loading process involves creating a new instance of the model and then calling load_state_dict on the model with the file path to the saved model [12].
Inference Mode:Evaluation Mode: Before loading a model for use, the model is typically set to evaluation mode by calling model.eval() [13, 14]. This turns off settings not needed for evaluation, such as dropout layers [15-17].
Gradient Tracking: It is also common to use inference mode via the context manager torch.inference_mode to turn off gradient tracking, which speeds up the process of making predictions [18-21]. This is used when you are not training the model, but rather using it to make predictions [19].
Deployment Context:Reusability: The sources mention that a saved model can be reused in the same notebook or sent to a friend to try out, or used in a week’s time [22].
Cloud Deployment: Models can be deployed in applications or in the cloud [23].
Model Transfer:Transfer Learning: The source mentions that parameters from one model could be used in another model; this process is called transfer learning [24].
Other Considerations:Device Agnostic Code: It is recommended to write code that is device agnostic, so it can run on either a CPU or a GPU [25-27].
Reproducibility: Random seeds should be set for reproducibility [28, 29].
Model Equivalence: After loading a model, it is important to test that the loaded model is equivalent to the original model by comparing predictions [14, 30-32].
In summary, model deployment involves saving the trained model’s parameters using its state dictionary, loading these parameters into a new model instance, and using the model in evaluation mode with inference turned on, to make predictions. The sources emphasize the importance of saving models for later use, sharing them, and deploying them in applications or cloud environments.
PyTorch for Deep Learning & Machine Learning – Full Course
Affiliate Disclosure: This blog may contain affiliate links, which means I may earn a small commission if you click on the link and make a purchase. This comes at no additional cost to you. I only recommend products or services that I believe will add value to my readers. Your support helps keep this blog running and allows me to continue providing you with quality content. Thank you for your support!
This text comprises a lecture delivered in Pakistan celebrating the completion of a reading of Sahih al-Bukhari, a highly esteemed collection of Hadith (sayings and traditions of the Prophet Muhammad). The speaker emphasizes the importance of Muslim unity, rejecting sectarianism and promoting a return to the core principles of Islam as exemplified in the Hadith. He explores the life and scholarship of Imam Bukhari, highlighting his deep love for the Prophet and emphasizing the significance of Sahih al-Bukhari as a source of religious knowledge. The lecture also details the speaker’s own chain of transmission (isnad) linking him back to the Prophet Muhammad, thereby establishing his scholarly credentials. Finally, the speaker urges his audience to embrace the principles of justice and piety found within the Hadith.
Sahih al-Bukhari Study Guide
Short Answer Quiz
What is the main point the speaker makes about unity in the Muslim community? He emphasizes that differences should be seen as a blessing, not a burden, and that Muslims should unite on the basis of their common love for the Prophet Muhammad and his Sunnah, rather than allowing minor differences to create division and takfir.
Why does the speaker mention Imam Bukhari and the Sahih Bukhari so frequently? The speaker highlights Imam Bukhari and the Sahih al-Bukhari as central to understanding authentic hadith and as a means of fostering unity and love for the Prophet, also as an antidote to extremism by returning to primary sources.
What does the speaker mean by the phrase “tear down the walls of Takfir”? He means that Muslims should stop declaring other Muslims as infidels based on minor differences in belief or practice, and instead focus on unity and common ground within the Ummah.
Explain the significance of the manuscript of Sahih al-Bukhari that the speaker references. The speaker emphasizes that the manuscript is 750 years old, representing a direct link to a reliably preserved version, and that despite the age of the manuscript, it has been found to match other manuscripts with high accuracy.
According to the speaker, when did the practice of holding gatherings to mark the end of reading Sahih al-Bukhari begin? He identifies Imam Ibn Hajar al-Asqalani as one of the founders of this practice and explains that this custom began after Imam Ibn Hajar completed his commentary on Sahih al-Bukhari.
What point does the speaker make about Imam Bukhari’s love of the Prophet Muhammad? He emphasizes that Imam Bukhari showed great love for the Prophet, evident in his placing the book of revelation first in Sahih Bukhari and that it serves as an example of the importance of showing love for the Prophet.
What does the speaker argue about the relationship between faith and prophethood? He asserts that mention of prophethood is the door to faith. He emphasizes that faith, at its core, is linked to acknowledging and following the example of Prophet Muhammad.
How does the speaker connect the beginning and end of Imam Bukhari’s Sahih? He asserts that Imam Bukhari began his work by describing the prophethood of Muhammad and concluded it with an emphasis on Tawhid, suggesting a full journey of faith beginning with the Prophet and ending with God.
What is the speaker’s main criticism of the Khawarij? The speaker criticizes them for their extreme interpretations of Islam, accusing them of considering themselves as superior and for creating innovation under the guise of monotheism, rejecting the Sunnah.
What is the significance of the hadith with the words Subhan Allah wa bihamdihi, Subhan Allah al-Azim at the end of the Sahih? The speaker explains that this hadith emphasizes the importance of glorifying and praising Allah, which he sees as a natural progression of a journey through the hadith starting with prophethood and ending with the recognition of God’s majesty, also as the way for people of paradise.
Essay Questions
Analyze the speaker’s arguments for why it is important to emphasize unity and avoid declaring others as infidels. What historical context does he provide, and how does he use the example of Imam Bukhari to support his ideas?
Discuss the significance of hadith literature, particularly Sahih al-Bukhari, in the speaker’s arguments. How does he use examples of hadith to promote specific viewpoints on spirituality and understanding?
Explore the relationship between knowledge and love for the Prophet Muhammad as presented by the speaker. How does he tie together actions, intentions, and love to a greater understanding of Islam?
Evaluate the speaker’s critique of extremism. How does he use historical figures and groups to illustrate the dangers of deviation from the Sunnah and the importance of moderation?
Based on the content of this source, discuss what, according to the speaker, are the main elements and characteristics of true Sufism? How is this distinct from the Sufism he criticizes?
Glossary of Key Terms
Hadith: A record of the words, actions, and tacit approvals of the Prophet Muhammad, considered a primary source for Islamic law and practice.
Sunnah: The way of life and practices of Prophet Muhammad, meant to be followed by Muslims.
Sahih al-Bukhari: One of the most revered collections of hadith in Sunni Islam, compiled by Imam Muhammad al-Bukhari.
Takfir: The act of declaring another Muslim to be an infidel, a practice the speaker strongly criticizes.
Ummah: The global community of Muslims.
Ishq wa Mohabbate Rasool: Love and devotion to the Messenger (Prophet Muhammad), a central theme in the text and in Islamic spirituality.
Tawhid: The concept of the oneness of God in Islam.
Khawarij: An early Islamic sect known for their extreme views and practice of declaring other Muslims as infidels, a group the speaker uses as a negative example.
Tawsal: In this context, seeking intercession or blessings through a medium, in this case, the reading of Sahih Bukhari for healing and other forms of help.
Rifa: The speaker states that he does not believe in rifa on earth, but that it exists in heaven, indicating some kind of ranking or status that is not possible in this world.
Ahl al-Sunnah wal Jama’ah: “People of the Sunnah and the Community,” a term used by the majority of Sunni Muslims to describe their adherence to traditional Islamic teachings.
Muhaddith: A scholar of Hadith, someone who studies and transmits the sayings and actions of the Prophet Muhammad.
Tasawwuf (Sufism): The mystical dimension of Islam, focused on spiritual purification and the direct experience of God.
Unity, Hadith, and the Legacy of Imam Bukhari
Okay, here is a detailed briefing document analyzing the provided text, focusing on its main themes and ideas:
Briefing Document: Analysis of Excerpts from a Speech on Sahih al-Bukhari
Overview:
This document analyzes excerpts from a speech, likely delivered in Pakistan, centered around the completion of a lesson on Sahih al-Bukhari, one of the most important collections of hadith (sayings and actions of the Prophet Muhammad). The speaker, identified as Muhammad Tahir al-Qadri, is a prominent Islamic scholar, and his address is a passionate call for unity, moderation, and a deeper understanding of Islamic tradition, particularly the hadith. He uses the occasion to highlight key themes from the life of Imam Bukhari, the author of the text, as well as to address contemporary issues of sectarianism and extremism. The overall tone is one of reverence, scholarship, and an appeal to reason and faith.
Main Themes and Ideas:
Emphasis on Unity and Solidarity:
The speaker repeatedly stresses the need for unity (ittehad), solidarity (yakjehti), and making differences a source of “mercy” rather than conflict.
He criticizes those who use petty differences to declare other Muslims as infidels (takfir), emphasizing the need to overcome sectarian divisions and approach disagreements with moderation.
Quote:“It’s time to create unity, unity and solidarity, make differences a mercy, don’t make them a burden. They used to convert the disbelievers into Muslims on the basis of petty differences and personal natures. Some schools of thought make Muslims infidels because of hatred.”
He argues that all Islamic schools of thought contain some part of the truth, and that no single school holds a monopoly on it.
Quote:“It is not that all truth is limited to only one school of thought. The truth is contained in all Islamic schools of thought and religions. Everyone has some part of the right…”
The speaker advocates for a focus on shared heritage of Hadith and Sunnah, specifically emphasizing the love of the Prophet Muhammad ( Ishq wa Mohabbate Rasool) as the basis for unity.
Quote:“If we were gathered on the basis of Hadith and Sunnah, as if we gathered on the basis of Ishq wa Mohabbate Rasool.”
The Importance of Hadith and Sunnah:
The speech places great importance on Hadith and Sunnah, the practices of the Prophet, as central to Islamic life.
He frames Sahih al-Bukhari as a critical resource for the understanding of these traditions, emphasizing the immense value of this particular collection. He describes it as a “boat” that saves one from sinking even if a storm comes.
He highlights the recitation of Sahih al-Bukhari as having spiritual and healing benefits.
Quote:“Recitation of Sahih Bukhari averts diseases so great…”
The speaker also criticizes the idea that all authentic hadith are found solely in Sahih al-Bukhari, asserting that many other authentic hadith exist. This point is emphasized multiple times with supporting quotes from classical scholars. He stresses, “Confining Sahih Hadith to Sahih Bukhari is not a form of knowledge. Ignorance is the sign of ignorance.”
Reverence for Imam Bukhari:
The speaker expresses deep reverence for Imam Bukhari, highlighting his piety, scholarship, and love for the Prophet.
He shares anecdotes from Bukhari’s life, including a story of his mother’s prayers restoring his eyesight, his exceptional memory for hadith, and his intense devotion to the Quran.
Quote:“Imam Muhammad Bin Ismail Bukhari was still a child when his eyes started to see. Now Imam Bukhari is starting the Tazkira from here Your mother, Majda, was a very devout Abida. She cried a lot and prayed in her dreams Ibrahim (peace be upon him) was visited. Now this is the incident that I am describing.”
He details the numerous classical scholars who praised and admired Bukhari’s contributions to the field of hadith.
He mentions Bukhari’s refusal to teach in royal courts and his subsequent expulsion, drawing a parallel to contemporary issues of scholars succumbing to political pressures and selling their religious knowledge for personal gain.
The History and Significance of Khatam al-Bukhari:
The speaker explores the history of holding gatherings to commemorate the completion (khatam) of Sahih al-Bukhari, attributing the practice to Imam Ibn Hajar al-Asqalani, whom he describes as the ‘Ameerul Momineen’ of hadith. He also mentions his own participation in one such event when he was nine years old.
He describes the grand scale of such gatherings and the importance they hold in the tradition of hadith study.
Critique of Extremism and Takfir:
The speech strongly denounces extremism, particularly the practice of declaring fellow Muslims as kafir (unbeliever).
Quote:“Let’s tear down the walls Takfir change and tear down the walls of confusion. The ancestors used to bring non-Muslims into the circle of Islam with the blessing of their words and deeds. We were Muslims by working hard all our lives. Excluded from the circle of Islam.”
He connects takfir with small personal differences and differences in nature, claiming that such practices are against the spirit of Islam.
He criticizes the Khawarij, an early sect known for their extremism, for their flawed understanding of Tawheed (monotheism), warning his audience not to follow their interpretation. He draws on the writings of Allama Ibn Taymiyyah to support this view.
Love for the Prophet Muhammad:
The speaker emphasizes the importance of love for the Prophet Muhammad (Ishq-e-Rasool) as a core element of faith. He believes that love should be accompanied by a genuine effort to adhere to the Prophet’s teachings.
He highlights various passages from Sahih al-Bukhari that showcase the Prophet’s virtues and the deep love and devotion he inspired in his companions. He draws attention to Imam Bukhari’s placement of the book on the beginning of revelation as the first book of Sahih al-Bukhari to demonstrate the importance of Prophethood.
He cites various instances of the Prophet’s interaction with his companions, his miracles, and his devotion to Allah as expressions of his supreme character.
The Importance of Authenticity and Knowledge:
The speaker dedicates a section to emphasizing the high standards of authenticity and reliability within Sahih al-Bukhari. He describes the lineage of transmission and highlights various reliable transmitters of the hadith from Bukhari onwards.
He points out that a group of these transmitters were also great Sufis (mystics), underscoring the synthesis of knowledge and spirituality within Islamic tradition.
He presents numerous chains of transmission going back to classical scholars and to the Prophet Muhammad himself. These chains serve to emphasize the authenticity of the tradition and the speaker’s own legitimate authority as a teacher.
Practical Application of Islamic Teachings:
The speaker emphasizes the practical application of Islamic knowledge to daily life.
He calls for justice in the lives of individuals as a path to success in this world and the next, connecting it with the final hadith in Sahih al-Bukhari. He urges scholars and religious leaders to uphold the truth, avoid selling their religion, and remain devoted to the teachings of the Prophet.
He emphasizes how the collection begins with the mention of Prophethood and ends with the mention of the oneness of God (Tawheed).
Call for Spiritual Renewal
The speaker calls for a renewal of traditional Sufism by purifying it from corrupt practices and emphasizing the importance of living by the Book and Sunnah. He laments that modern-day Sufism has been reduced to ceremonies, business, and materialism, contrasting it with the true asceticism of early Sufis and the original Sufism of the Salaf-e-Saliheen.
He also mentions the links between Sufism and those who passed along the teachings of Sahih al-Bukhari.
Key Quotes:
“It’s time to create unity, unity and solidarity, make differences a mercy, don’t make them a burden.”
“If we were gathered on the basis of Hadith and Sunnah, then it is as if we have gathered on the basis of love and love of the Messenger.”
“It is not that all truth is limited to only one school of thought. The truth is contained in all Islamic schools of thought and religions. Everyone has some part of the right…”
“Recitation of Sahih Bukhari averts diseases so great…”
“Confining Sahih Hadith to Sahih Bukhari is not a form of knowledge. Ignorance is the sign of ignorance.”
“The ancestors used to bring non-Muslims into the circle of Islam with the blessing of their words and deeds. We were Muslims by working hard all our lives. Excluded from the circle of Islam.”
“Imam Muhammad Bin Ismail Bukhari was still a child when his eyes started to see. Now Imam Bukhari is starting the Tazkira from here Your mother, Majda, was a very devout Abida. She cried a lot and prayed in her dreams Ibrahim (peace be upon him) was visited. Now this is the incident that I am describing.”
Concluding Remarks:
This speech presents a multi-faceted argument for a return to the core principles of Islam, rooted in a deep understanding of Hadith and Sunnah. It is a passionate plea for unity within the Muslim community, a call to abandon extremism and sectarianism, and a challenge to live a life of true devotion to Allah and His Messenger. The speaker’s detailed analysis of Sahih al-Bukhari, combined with his personal anecdotes and passionate delivery, makes it a compelling address that seeks to educate, inspire, and mobilize his audience towards a more enlightened and unified practice of Islam. The speech blends scholarship, spirituality, and an engagement with contemporary issues, making it relevant to the audience and its context.
Unity, Knowledge, and the Legacy of Imam Bukhari
FAQ: Unity, Knowledge, and the Legacy of Imam Bukhari
What is the primary call of this discourse, and what issues does it seek to address?
The primary call is for the unity and solidarity of the Muslim Ummah, emphasizing that differences should be a source of mercy, not division. The speaker argues against takfir (declaring fellow Muslims as infidels) based on minor differences in schools of thought or personal inclinations, which they see as a corruption of true Islamic teachings. The discourse aims to dismantle the walls of confusion, extremism, and hatred that have led to divisions within the Muslim community.
How does the speaker view the various schools of thought within Islam, and what does this have to do with the overall theme?
The speaker believes that all Islamic schools of thought contain some part of the truth and that no single school possesses the entirety of it. He argues against the notion that one school is entirely correct while all others are wrong, promoting instead a view that differences should be viewed as a mercy. This perspective is fundamental to the theme of unity, as it challenges the exclusivity that fuels division. The speaker emphasizes that focusing on the common ground, especially the love of the Messenger and the Hadith and Sunnah, is more important than using differences to create conflict. He himself identifies as Hanafi in fiqh, Ash’ari in belief, and Qadri in Tariqa.
What is the significance of Sahih al-Bukhari in this discourse?
Sahih al-Bukhari is presented as a central unifying factor for the Ummah. It is not just a book of hadith, but a source of knowledge, guidance, and spiritual connection to the Prophet Muhammad (peace be upon him). The speaker stresses the immense value of this collection, emphasizing its accuracy and reliability, highlighting the discovery of a 750-year-old manuscript that confirms the authenticity of its text. Reciting and studying Sahih al-Bukhari is seen as a way to avert diseases, receive blessings and connect the faithful to the Prophet Muhammad (peace be upon him). The speaker advocates for gathering on the basis of Hadith and Sunnah, embodied in Sahih al-Bukhari.
What historical context is given regarding the tradition of concluding Sahih al-Bukhari with a large gathering?
The tradition of holding large gatherings at the completion (Khatm) of Sahih al-Bukhari is attributed to Imam Ibn Hajar al-Asqalani, who organized a grand feast after completing his commentary on Sahih al-Bukhari, Fath al-Bari, in 842 AH. This event is used as an example of how the end of a book is not the end of its effects but an occasion for learning and unity, demonstrating that such gatherings are a tradition of knowledge, blessing, and beauty across schools of thought.
What is the speaker’s view on the relationship between knowledge, piety, and actions, particularly as it pertains to Imam Bukhari?
The speaker emphasizes that true knowledge is inseparable from piety, righteousness, and good actions. Imam Bukhari’s life is presented as the ideal integration of these elements, with his immense knowledge being complemented by his devotion to worship and asceticism. The speaker highlights Imam Bukhari’s extensive Quran recitations during Ramadan, emphasizing that the blessings of knowledge are greater when they are accompanied by the same level of righteous acts of worship. He also suggests a key to understanding Sahih al-Bukhari is that it begins with the mention of prophethood, and ends with the mention of Tawheed, noting that faith will remain imperfect without Tawheed and proper actions.
How does the speaker discuss the importance of understanding Imam Bukhari’s personality and life to better understand his work?
The speaker explains Imam Bukhari faced jealousy and hardship, and rejected the request of the ruler of Bukhara to teach Sahih al-Bukhari in his palace, saying “I do not humiliate knowledge, nor do I raise knowledge at the gates of kings”. This was not only a display of bravery, but is also presented as a great piece of advice for students of religion. The speaker notes that his actions led to him being expelled from Bukhara which highlights Imam Bukhari’s immense love for knowledge as well as his devotion and loyalty to Allah over material pursuits. The speaker highlights his struggles and ultimate glory after death to show that Imam Bukhari had a high status in life and in death, exemplifying the importance of preserving knowledge. This is also meant to underscore that the speaker values knowledge and religion over worldly gain.
What does the speaker say about the unique structure and content of Sahih al-Bukhari in relation to its author’s love for the Prophet Muhammad (peace be upon him)?
The speaker emphasizes that Sahih al-Bukhari is unique in its structure. Instead of beginning with the Book of Faith or purification, it starts with Bada al-Wahhi, the book about the beginning of revelation and Prophethood. This demonstrates that Imam Bukhari was a lover of the Messenger and that his book begins with a mention of Prophethood and ends with a discussion of tawheed which illustrates the core of his work and faith as being rooted in the message of Prophethood. He also discusses how Imam Bukhari repeated certain hadith related to the love and reverence for the Messenger multiple times in the text, and even highlights how Imam Bukhari ended Sahih al-Bukhari with the hadith relating to the praise and glorification of Allah.
What is the significance of the speaker presenting his sanad (chain of transmission) at the conclusion of this lesson?
The speaker presents his sanad as a demonstration of the connection he has with the great scholars of the past all the way up to the Prophet Muhammad (peace be upon him). He emphasizes the small number of intermediaries between himself and key figures of the past such as Shah Waliullah Muhaddith Dehlavi, Imam Ibn Hajar al-Asqalani, and Imam Jalaluddin Suyuti, as well as his direct connection with several living scholars who had direct connections to the most famous scholars in history. This highlights the value and importance of a living tradition in which knowledge is passed down, and how that same knowledge connects him to both the historical Islamic tradition as well as the Prophet Muhammad (peace be upon him). He also uses his sanad as the means to grant permission to all the listeners of the lesson to participate in this tradition of knowledge, and to show that the tradition is still alive and vibrant to this day.
A 63-Year Journey Through Hadith
Okay, here’s the detailed timeline and cast of characters based on the provided text:
Timeline of Events
12 Years Old (Approximately 1963): The speaker begins his journey in search of knowledge. He studies in Halmain Sharifin (Mecca and Medina), taking advantage of scholars in Masjid Nabawi and Haram of Makkah and living at a madrasa near the house of Hazrat Sayyiduna Abu Ayyub Ansari.
63 Years of Journey: The speaker states he is near this age, having traveled to all corners of Arab and Islamic countries, and has spent the last 63 years of his life learning.
Prior to 701 Hijri: Imam Sharafuddin Union has a version of Sahih al-Bukhari prepared by his scribe.
701 Hijri: Imam Sharafuddin Juni passes away, his death finalizing the reform of his manuscript of the Sahih al-Bukhari.
1313 Hijri (Approximately 1895 AD): The manuscript of Sahih al-Bukhari prepared by Imam Sharafuddin Union is destroyed in Egypt, in the beginning of Rabi al-Thani.
842 Hijri: Imam Ibn Hajar Asqalani organizes a grand feast (Walima) after completing his commentary on Sahih al-Bukhari, Fateh al-Bari, in Cairo. The event is attended by scholars, judges, and people of status, and is described as a very large and unprecedented gathering. Imam Sakhavi, then nine years old, also participated.
Before Imam Bukhari’s Birth: Imam Bukhari’s mother has a dream where she meets Ibrahim (peace be upon him), who tells her that her son’s sight will be restored due to her prayers.
Imam Bukhari’s Youth: Imam Bukhari starts building Milli Karamat with 1080 Hadiths from Shaykhs. In his youth, Imam Bukhari corrects a hadith during a lesson on narration from Abi Arwah and Abi Khattab that had troubled many scholars there. Imam Bukhari also finishes the Qur’an in the month of Ramadan 40-41 times through the Taraweeh prayer and prays a complete Quran each night in Tahajjud and one a day before Iftar, and was noted for keeping the blessed face of the Holy Prophet (pbuh) within his clothing.
Imam Bukhari’s Life: Imam Ahmad bin Hanbal states that he has not seen anyone like Muhammad bin Ismail al-Bukhari on earth. Imam Ishaq b. Rahawayh urges people to seek knowledge from Bukhari. Imam Muslim asked permission to kiss the feet of Imam Bukhari for his knowledge.
Compilation of Sahih al-Bukhari: Imam Bukhari compiles the Sahih al-Bukhari from 600,000 hadiths. He claims to remember 100,000 authentic and 200,000 non-authentic hadiths. He states there are only 2700 narrations in his book, excluding the repetition in hadith chains, which is also a great number.
Imam Bukhari’s Exile: The emir of Bukhara, Khalid bin Ahmad al-Zahli, demands Imam Bukhari teach his sons privately in the palace. Imam Bukhari refuses, citing his respect for knowledge. As a result, the emir expels Imam Bukhari.
Imam Bukhari’s Death: Imam Bukhari dies in the village of Khartan near Samarkand. It is said that the people could smell the scent of his grave even after several days.
Imam Bukhari’s Death Dream: A group of Companions are seen standing in a dream, with the Messenger of Allah (peace be upon him) waiting for Imam Bukhari. Imam Bukhari dies on the same night that this dream is seen, and the area is covered in a forest as a result of his grace after that day.
After Imam Bukhari’s Death: A famine occurs in Samarkand. On the advice of a righteous elder, people visit Imam Bukhari’s mausoleum and supplicate, after which rain falls. The same was often done in times of trouble, during the centuries of the Ummah.
2001 AD: The manuscript version of Sahih al-Bukhari of Imam Sharafuddin Union is printed again after being hidden for 106 years.
Contemporary Time: The speaker is giving a lesson on Sahih al-Bukhari. He is announcing the demolition of the walls of Takfir, calling for unity and solidarity within the Ummah, and emphasizing the importance of Hadith and Sunnah. He also emphasizes the commonality of Islamic schools of thought and says the truth lies in them all. The speaker says it is time for unity, and all must come together to learn and follow the example of the Holy Prophet (pbuh) in all ways.
Cast of Characters
Speaker: A scholar of Islamic studies, likely from Pakistan. He is 63 years old and has traveled extensively in pursuit of knowledge, has studied with many different scholars, and seems to be associated with various educational institutions. He identifies himself as Hanafi-ul-Madhab in jurisprudence, from Ahle Sunnat Wal Jamaat in belief and a Qadri according to the Tariqat. He is a great believer of the unity of the ummah and the teaching and following of the life of the Holy Prophet (pbuh).
Imam Muhammad bin Ismail al-Bukhari (RA): The author of the Sahih al-Bukhari, a highly revered collection of hadith. He is depicted as a devoted worshiper, a lover of the Prophet, and a scholar of great memory and intellect.
Imam Sharafuddin Union: A scholar who had a version of Sahih al-Bukhari prepared by his scribe. The speaker calls it the most reliable version and states it is 750 years old. The manuscript is destroyed in 1895 and re-printed in 2001.
Imam Sharafuddin Juni: Imam Sharafuddin Union’s death finalized the work in 701 Hijri.
Ibrahim (Peace be upon him): A prophet who appears in a dream to Imam Bukhari’s mother and promises the restoration of her son’s sight.
Mother of Imam Bukhari: A devout woman who prays for the restoration of her son’s sight.
Imam Ibn Hajar al-Asqalani: A renowned scholar and commentator on Sahih al-Bukhari. He is the author of Fateh al-Bari, a famous commentary on Sahih al-Bukhari. The speaker considers him among the founders of the ritual of gathering at the end of the lesson of hadith.
Imam Sakhavi: A student of Imam Ibn Hajar Asqalani who participated in the gathering on the completion of Fateh al-Bari as a child of nine years old.
Khalid bin Ahmad al-Zahli: The emir of Bukhara who orders the expulsion of Imam Bukhari.
Sayyiduna Abu Ayyub Ansari (RA): A companion of the Prophet, in whose house the madrasa the speaker lived was located.
Hazrat Qutiba: One of the jurisprudents of Imam Bukhari’s time, who said since his awareness, he has not cried as a great scholar as he cried when he saw Muhammad bin Ismail al-Bukhari.
Imam Ahmad bin Hanbal: A scholar who highly praised Imam Bukhari. He also said that seven million hadiths are authentic.
Imam Ishaq b. Rahawayh: A scholar who urged people to seek knowledge from Imam Bukhari.
Imam Muslim: A scholar of hadith, author of Sahih Muslim, who sought permission from Imam Bukhari to kiss his feet.
Imam Abu Bakr Muhammad bin Ishaq bin Khazima: A scholar of hadith who stated that he has not seen a greater hadith scholar than Imam Bukhari.
Imam Sufyan: An Imam who had a hadith narrated, that troubled the scholars in attendance, of whom Imam Bukhari clarified who had narrated it and where it came from.
Imam al-Hafiz Ibn Hajar Go to al-Uqlani: A scholar who did studies on the records of holding grand ceremonies for the completion of a book like the Sahih al-Bukhari.
Dhul-Khuwaisr Al-Tamimi: A Khawarij who is presented by Allama Ibn Taymiyyah for his lack of respect in the Prophet’s (pbuh) presence.
Allama Ibn Taymiyyah: A scholar whose writings on the Khawarij are quoted extensively in the text. He calls the Khawarij the founders of innovation in Islam, and says that they should not be taken for their interpretations of Tawheed.
Sultan Abdul Hamid Khan II: The last ruler of the Ottoman Empire, a patron of one version of Sahih al-Bukhari.
Allama Syed Siddiq Hasan Khan Al-Kanoji Al-Bhopali: A scholar of the Ahl al-Hadith school of thought and Muhaddith of the sub-continent of India. He is quoted for the tawassul of Sahih al-Bukhari.
Allama Muhammad Abd al-Rahman bin Abd al-Rahim al-Mubarak Puri: A well-known scholar, also of the Ahl al-Hadith and Salafi school of thought. He mentioned that tawasul by the Sahih al-Bukhari is a legitimate Ruqyah.
Imam Alauddin al-Deem Mashki: A scholar from whom a poem about Imam al-Bukhari sitting in the Ruza Muhammadi is quoted.
Imam Ibrahim bin Muhaq Al-Nusr Ash’arabat al-Bukhari: One of the four major narrators of Imam Bukhari, and a well known Hanafi.
Imam Abu Muhammad Hamad bin Shakir al-Nasfi: One of the four major narrators of Imam Bukhari.
Imam Abu Talha Mansoor bin Muhammad al-Bazi?: One of the four major narrators of Imam Bukhari.
Imam Abu Abdullah Muhammad bin Yusuf al-Furbari: The fourth and most famous of the four major narrators of Imam Bukhari.
Imam Abu Ali Saeed bin Uthman Ibn Suk: One of the 12 Imams and grand-disciples of Imam Farbari.
Imam Abu bin Ibrahim Ahmad Al-Balghi Al-Mustamil: One of the 12 Imams and grand-disciples of Imam Farbari.
Imam Abu Muhammad Abdullah bin Ahmad al-Sarakhi: One of the 12 Imams and grand-disciples of Imam Farbari.
Imam Abu al-Hasan Abd al-Rahman bin Muzaffar al-Dawoodi al-Bushanji: One of the 12 Imams and grand-disciples of Imam Farbari.
Imam Abu al-Hassan Muhammad bin Makki al-Kush Maini: One of the 12 Imams and grand-disciples of Imam Farbari.
Abu Muhammad Jafar bin Muhammad Nasir al-Khaldi: A Sufi scholar and narrator of hadith. The speaker states that the narrators of the Sahih al-Bukhari on one hand were muhaddith and on the other hand the Sufi mystics of the time.
Abu Hussain Noori, Ruwaym bin Ahmad Baghdadi, Samnoon bin Hamza al-Muhab: Names of Sufi scholars associated with the narration of Sahih al-Bukhari by Jafar bin Muhammad Nasir al-Khaldi.
Imam Junaid al-Baghdadi: A Sufi Imam who is the teacher and the Sheikh of Abu Muhammad Jafar bin Muhammad Nasir.
al-Hafiz Abu Dharr Abd bin Ahmad bin Muhammad bin Abdullah al-Harbi: The narrator through whom the trust of the Sahih al-Bukhari has been established in the world.
Imam Aboluq Abdul Awl bin Isa bin Shoaib al-Sajzi al-Sufi: A Sufi scholar and a narrator of the Sahih al-Bukhari.
Shaykh al-Islam Abu Ismail Al-Ansari: Imam of knowledge who was a follower of Arabic and a teacher of Imam Aboluq Abdul Awl bin Isa bin Shoaib al-Sajzi al-Sufi
Syedna Sheikh Abdul Qadir Jilani (RA): A revered Sufi saint, who led the funeral prayer of Imam Abu al-Taqwa Abdul Awl bin Isa bin Shoaib al-Sajzi al-Sufi.
Imam Dawoodi al-Bushanji: Also an ear of Akbar and a muhaddith who took from Imam Bukhari, and also a Sufi in the conduct of Sir Ila Allah.
Imam Ibn Al-Muzaffar al-Dabudi al-Bushanji: The author of the tradition who is mentioned by the speaker and who was both a scholar of hadith and Sufism.
Sheikh Abu Ali al-Daqqaq: A Sufi Sheikh in whose circle Imam Dawoodi al-Bushanji sat.
Abu al-Qasim al-Kashiri: A sheikh from who references can be found in Kashf al-Mu’jub in which references are made to his having the same teachers as Imam Dawoodi al-Bushanji.
Sheikh Nawab Siddique Hasan Khan Bhupali Al-Kanoji: A great scholar of the Ahl al-Hadith and Salafi school of thought in India.
Maulana Rashid Ahmad Ganguhi: A well known scholar who is quoted for his description of how much the companions loved the Holy Prophet (pbuh) in the time he lived.
Sayyiduna Siddiq Akbar: A companion and the first caliph of the Prophet, known for his deep love of the Prophet. His actions and response to the Holy Prophet (pbuh) on the prayer and leading of it are used to show the nature of a true lover.
Abu Saeed bin Maali: A companion of the Prophet, whose story about answering the call of the Prophet is used to illustrate the importance of prioritizing the Prophet’s call over other acts of worship.
Hazrat Abi bin Ka’b: A companion of the Holy Prophet (pbuh) whose story about God having commanded to prioritize and listen to the call of the Holy Prophet (pbuh) over prayer is brought.
Imam Tayyibi: The scholar whose ruling that it is permissible to speak to the Holy Prophet (pbuh) during prayer and to call out to him is brought forth.
Imam Shafi’i: A scholar, whose view that the dry palm preferred the hereafter to the world is quoted.
Imam Bayhaqeen: A scholar who related that Imam Shafi’i said the dry palm preferred the hereafter to the world, and who also quoted the conversation had between Aqa (pbuh) and the palm.
Imam Abu Naim: A scholar whose book was referred to in which a description of the love of the companions for the Holy Prophet (pbuh) in that they would not eat or drink before he did is quoted.
Imam Abdul Qadir Jilani: A scholar and mystic who is listed in the line of the transmission of the Sahih al-Bukhari.
Allama Dhahabi: A scholar from whose work many quotes are given in the text.
Ustad Maulana Abdul Baqi Muhaddith: The speaker’s grandfather and Ustad, a great Muhaddith who lived in Madinah.
Maulana Ziauddin Ahmad Madani: One of the teachers of the speaker who lived in Madinah.
Maulana Badr Alam Mirthi: One of the teachers of the speaker who lived in Madinah.
Maulana Fazlur Rahman Ganj Moradabadi: A scholar from whom the speaker’s father, dear Sheikh Fariduddin Al-Qadri, heard.
Hazrat Shah Abdul Aziz Muhaddith Dehlavi: One of the scholars in the speaker’s lineage of transmission.
Hazrat Shah Wali Allah Muhaddith Dehlavi: A renowned scholar of Islam, considered the greatest scholar on earth and mentioned often for his lineage and knowledge.
Al-Shaykh Abd al-Baqi bin Ali al-Ansari al-Muhadith al-Kanwi al-Madani: A Sheikh from whom the speaker is given an ijaza or certification.
Al-Shaykh Al-Mumar Fawq al-Ma’ulna Maulana Fazlur Rahman bin Ahlullah bin Al Faiz al-Kunj Murad Abadi: Another Sheikh in the chain of transmission.
Al-Shaykh Anbi bin Abbas al-Maliki al-Maki: A muhaddith of the Haram of Mecca and one of the speaker’s teachers, known for his line of transmission and his knowledge.
Sheikh Muhammad bin Alwi Al-Maliki al-Maki: Sheikh Anbi bin Abbas al-Maliki’s son and another teacher of the speaker.
Sheikh Alami bin Abbas Alwal: A teacher in the speaker’s lineage.
Imam Umar bin Hamdan al-Marsi: A great Arab scholar and also mentioned as one of the teachers of the speaker.
Sheikh Abdul Haib bin Abdul Kabir al-Qatani: A Sheikh who the speaker states Imam Umar bin Hamdan used to narrate from.
Shaykh Abdul Qadir al-Shalbi: A Sheikh who the speaker states used to narrate from Al-Trab al-Wasi.
Sheikh Muhammad bin Ali bin Zahir al-Watani: A Sheikh who the speaker states used to narrate from the student of Sheikh Ahmed bin Ismail al-Barzanji.
Al-Sheikh Abul Barakat Al Syed Ahmad Al Qadri Muhaddith Alwari: The founder of Hizbul Ananaf Lahore and one of the speaker’s teachers.
Anas Shah Ahmad Raza Khan Al-Barilvi: One of the speaker’s teachers, who the Sheikh Abul Barakat Ahmad Al-Qadir intimately listened to.
Shah Al Rasool Ahmad Almar Harwi: One of the scholars in the transmission.
Shaykh Ahmad bin Saleh al-Suwaidi Al-Baghdadi: A Sheikh that is mentioned in the line of transmission.
Ibn al-Hafiz al-Sayyid Muhammad al-Murtaza al-Zubaini: A Sheikh mentioned in the transmission.
Imam al-Muhammad Muhammad bin Sunnah Al-Falani: A Sheikh and Imam who lived over 100 years, and that is why his credentials became smaller.
Muhammad bin Abdullah al-Idrisi al-Walati: One of the scholars and imams mentioned.
al-Imam al-Tjab al-Din Muhammad bin Arqamash al-Shabki al-Hanafi: A well known muhaddith and one of the imams of the line of transmission.
Imam Al-Hafiz Ahmed Ibn Hajar Al-Asklani: Considered to be the Amir-ul-Momineen of the hadith, and one of the imams in the lineage of transmission.
Imam Jalaluddin Suyuti: One of the last great muhadditheen and one of the imams mentioned in the lineage of transmission.
Imam Shamsuddin Muhammad b Abd al-Rahman bin Ali al-Qami al-Masri: One of the Imams in the line of transmission.
Shaykh Muhammad al-Fatih bin Muhammad bin Muhammad bin Jafar al-Qatani: One of the Sheikhs mentioned in the line of transmission, of whom many great scholars were students.
Muhammad Badr al-Din bin Yusuf al-Hasani: A scholar from Syria and mentioned as a great muhaddith, and a student of Shaykh Muhammad al-Fatih bin Muhammad bin Muhammad bin Jafar al-Qatani.
Abi al-Makaram Amin Sabid Al-Damashqi: A student of Shaykh Muhammad al-Fatih bin Muhammad bin Muhammad bin Jafar al-Qatani.
Sheikh Muhammad Mustafa The famous Bama’ Al-Ainin al-Shankiti: A student of Shaykh Muhammad al-Fatih bin Muhammad bin Muhammad bin Jafar al-Qatani.
Sheikh Umar Bin Hamdan Al-Maarithi: A student of Shaykh Muhammad al-Fatih bin Muhammad bin Muhammad bin Jafar al-Qatani.
Sheikh Ahmad Ibn Ismail al-Barzanji: A Sheikh who was one of the teachers of Shaykh Umar Bin Hamdan Al-Maarithi.
Imam Abdullah bin Salim al-Muhadith al-Basri: A Sheikh whose teachings were used by Shaykh Muhammad al-Fatih bin Muhammad bin Muhammad bin Jafar al-Qatani.
Al-Sheikh Al-Sayyid Tahir Alauddin Al-Jilani al-Baghdadi: One of the speaker’s teachers, and from whom he has a chain of transmission of only 4 wastas to the Imam Al-Wasi.
Al-Naqeeb al-Sayyid Mahmud Asam al-Din al-Jilani al-Baghdadi: A Sheikh in the line of transmission.
Imam al-Muhaddith al-Naqeeb Al-Sayyid Abdul Rahman Zaheeruddin Al-Maaz Al-Jilani Al-Baghdadi: A Sheikh in the line of transmission.
Imam Nu’man bin Mahmood Al-Alusi: An Imam in the line of transmission.
al-Walada al-Imam Mahmud bin Abdullah al-Alusi Sahib Ruh al-Ma’ani: Imam Al-Wasi’s teacher.
Imam Yusuf bin Ismail al-Nabahani: A Muhaddith of Sham from the early parts of the last century, and mentioned as one of the speaker’s teachers.
Al-Sheikh Hussain bin Ahmed Asiran al-Asadi Al-Lebanani: One of the speaker’s teachers, and mentioned as one of the last students of Imam Yusuf bin Ismail al-Nabhani.
Al-Sheikh Abdul Moeed Abdul Maoud Al-Jilani Al-Madani: A Sheikh of the speaker, who lived over 155 years.
Al-Shah Imdad Abdullah Al-Muhajir al-Makki: A direct student of the Sheikh Abdul Moeed Abdul Maoud Al-Jilani Al-Madani, who is a well known figure to those of the Deoband movement.
Sheikh Syed Ahmed Saeed Al-Qazimi Al-Marohi: A sheikh, known from a list in which they are stated to be the student of Sheikh Mustafa Raza Khan Al Barili.
Sheikh Mustafa Raza Khan Al Barili: The Sheikh who is stated to be in the line of transmission of the certificate.
Sheikh Muhammad Sardar Ahmad Al Qadri Al-Shati: One of the scholars in the line of transmission.
Sheikh Hamid Raza Khan Al-Qadri: One of the scholars in the line of transmission.
Sheikh Muhammad Abdul Rasheed Qutbuddin Al-Rizween: One of the scholars in the line of transmission.
Allama Al-Sheikh Muhammad Tahir: A scholar who wrote a magazine on the permission, ease, and hadith which he held.
Al-Mufida and Arabic Al-Jaami al-Sahih Al-Imam al-Bukhari: A figure mentioned in the text who seems to be an allegory for those listening to the lesson.
Imam Abi Abdullah Muhammad bin Yusuf al-Farbari: Whose mention was also held in this meeting, for being the most famous narrator of Imam Bukhari in his time, from whom the tradition of the Sahih al-Bukhari became known around the world.
Abi Luqman Yahya bin Ammar bin Muqbal bin Shahan al-Khatlani: One of the eleven Sheikhs who transmit between the speaker and Imam Bukhari.
Islamic Unity: A Call for Solidarity
The sources emphasize the importance of unity and solidarity within the Muslim Ummah, highlighting the need to overcome sectarianism and conflict [1, 2]. Several key points about Islamic unity are discussed:
Common Ground: The sources stress focusing on the commonalities of Islam, such as the Quran, Hadith, and Sunnah, rather than differences in schools of thought [2]. It is noted that all Islamic schools of thought contain some part of the truth [3]. The common love and respect for the Prophet Muhammad is also emphasized as a basis for unity [1, 3].
Rejection of Extremism: There is a call to eliminate extremism and sectarianism, with the need for moderation and centrality emphasized [2, 3]. The sources argue that differences should be seen as a mercy, not a burden, and that Muslims should not declare each other infidels over minor disagreements [1, 4, 5].
Importance of Hadith and Sunnah: The sources argue that the protection and revival of religion requires focusing on the knowledge of Hadith and Sunnah. It is stated that unity is not possible without this protection [1, 2, 5]. Connecting with the righteous Salaf (early generations of Muslims) through Hadith and Sunnah is presented as a way to revive the culture of knowledge [2].
The Role of Scholars: Scholars are urged to promote unity and solidarity rather than division [1, 2, 4]. It is mentioned that scholars should not sell their consciences or character for worldly gain [6]. The sources emphasize that scholars and students should keep in mind that the knowledge of hadith is not limited to Sahih Bukhari alone, but is contained in other books as well [7, 8].
Historical Context: The sources refer to historical figures, such as Imam Ibn Hajar al-Asqalani, who organized gatherings to celebrate the completion of hadith books to emphasize the importance of knowledge and unity [9, 10]. The sources present a historical perspective on how the pursuit of knowledge and unity was a shared goal among various Islamic schools of thought. The narrators of Sahih Bukhari include both Muhaddith and Sufi mystics, showing the combination of these aspects [11-13].
Practical Steps: The sources call for tearing down the “walls of confusion” and “walls of Takfir,” referring to the practice of declaring other Muslims infidels [5, 6, 14]. The idea is to revive the values of religion by emphasizing the love of the Prophet and the knowledge of Hadith [4, 10, 15]. The sources also suggest focusing on commonalities and seeking the truth in all Islamic schools of thought [2-4].
Call to Action: The sources conclude with an announcement to tear down the walls of hatred and unite the Ummah based on the teachings of the Prophet, the Quran, and the Sunnah, while following the example of Imam Bukhari and the predecessors [1, 2, 14, 16].
Overall, the sources present a view of Islamic unity based on shared principles, mutual respect, and a commitment to knowledge and the teachings of the Prophet. The emphasis is on moving beyond sectarianism and focusing on the common goals of the Muslim Ummah.
Hadith, Sunnah, and Islamic Unity
The sources discuss the importance of Hadith knowledge, its preservation, and its role in Islamic unity and practice. Here are some key points:
Central Role of Hadith and Sunnah: The sources emphasize that Hadith and Sunnah are essential for the protection and revival of religion [1, 2]. It’s stated that unity among Muslims is not possible without focusing on Hadith and Sunnah [1, 2]. The sources suggest that a connection to the righteous Salaf (early generations of Muslims) through Hadith and Sunnah is vital to revive the culture of knowledge [2].
Sahih Bukhari: The text discusses Sahih Bukhari extensively, noting its significance as a primary source of Hadith [1-28]. It highlights the meticulousness of Imam Bukhari in compiling the book, who is said to have memorized 100,000 authentic and 200,000 non-authentic hadiths [29].
Not Limited to One Book: The sources make it clear that Hadith knowledge is not limited to Sahih Bukhari alone [5, 30]. It is noted that Imam Bukhari himself stated that he left out many authentic hadiths to keep the book from becoming too long [5, 30]. It is also mentioned that Imam Muslim did the same, and that other books also contain authentic hadith [30, 31]. To only accept hadith from Sahih Bukhari is considered a sign of ignorance [5].
Importance of the Chain of Narration: The sources discuss the importance of the chain of narrators (Isnad) in verifying the authenticity of Hadith [5, 25-28, 32-36]. The transmission of Hadith through various scholars is highlighted with emphasis on the reliability of the narrators [4, 6, 8, 9, 27, 28, 33, 35, 37].
Love for the Prophet: The text illustrates how Imam Bukhari’s compilation of Hadith was motivated by his deep love and respect for the Prophet Muhammad [1, 11-13, 17, 18, 22-24, 38, 39]. Imam Bukhari is said to have started his book with the mention of Prophethood and ended with the knowledge of Tawheed [40, 41]. The sources contain various hadiths about the Prophet’s life, actions, and character, emphasizing his importance in the Muslim faith [4, 12, 17, 20-22, 40].
Practical Application: The text discusses the concept of tawassul, which is using the recitation of Sahih Bukhari as a means to seek blessings, cure diseases, and ask for help from Allah [1, 6]. The sources emphasize that the true claim of love for the Prophet (Ishq Rasool) is shown through adapting to the actions and character of the Prophet Muhammad, including following his ways in eating, drinking, praying, and other aspects of life [22, 23].
Levels of Authenticity: The sources describe a seven-level system for categorizing the authenticity of hadith, with Sahih Bukhari and Sahih Muslim at the top, followed by hadith recorded by either one of them, and then by other scholars who met specific conditions [31]. This highlights the meticulousness and systematic approach to hadith verification within Islamic scholarship [32].
Sufism and Hadith: The sources note that both Muhaddith scholars of hadith and Sufi mystics were among the narrators of Sahih Bukhari [9, 10, 33, 42]. This connection between Hadith and Sufism indicates that these two traditions were not separate and that knowledge and spirituality were both important in the preservation and transmission of Hadith [43].
Rejection of Extremism: The sources state that Imam Bukhari rejected the ideas of the Khawarij, an early Islamic sect, at the end of Kitab al-Tawheed, as a warning against extremism [14, 15, 44]. The Khawarij are considered the founders of innovation in the history of Islam, and the source emphasizes that Muslims should not take their interpretation of Tawheed or their ideas about who is a believer and who is not [15, 44].
Importance of Scholars: Scholars are portrayed as having a vital role in preserving, transmitting, and explaining the Hadith [5, 11, 14, 23, 30, 40, 43-46]. They are urged to promote unity and solidarity, and to avoid selling their principles for personal gain [23, 46].
In summary, the sources highlight that Hadith knowledge is central to understanding and practicing Islam and that it promotes unity and love for the Prophet, while also warning against extremism and division. The sources emphasize that a true understanding of hadith comes from careful study, adherence to the chain of narration, and putting the teachings into practice.
Sahih Bukhari: A Comprehensive Overview
The sources discuss Sahih Bukhari as a central text in Islam, revered for its collection of hadith, and emphasize its importance in various aspects of Islamic faith and practice [1-4]. Here’s a detailed overview:
Compilation and Significance: Sahih Bukhari is described as one of the most reliable versions of Sahih Bukhari and is a highly respected collection of hadith [3]. It was compiled by Imam Muhammad bin Ismail al-Bukhari, who is portrayed as a great scholar, with a deep love for the Prophet Muhammad [4, 5]. Imam Bukhari is said to have memorized 100,000 authentic hadith and 200,000 non-authentic hadith [6, 7]. He selected hadith for the book from a collection of six lakh hadith [6].
Structure and Content:
The first book of Sahih Bukhari, Bada al-Wahi, begins with the mention of Prophethood and how the revelation was revealed to the Prophet Muhammad [4, 8]. This is unique, as other collections of hadith begin with other subjects, such as the Book of Faith [9].
The second book of Sahih Bukhari is Kitab al-Iman, or the Book of Faith. In this book, Imam Bukhari includes Bismillah, “In the name of Allah, the Most Gracious, the Most Merciful,” at the beginning of the second chapter, but did not do so in the first book, which is about the Prophet [10].
The last book of Sahih Bukhari is Kitab al-Tawheed, which deals with the concept of the oneness of God [11].
The book concludes with a condemnation of the Khawarij, an early Islamic sect considered heretical [12, 13].
The last hadith in the collection is on the glorification of God [11, 12].
The sources note that the hadith in Sahih Bukhari relate to the words and actions of the Prophet Muhammad but that the collection also includes the regulations, follow-ups, and comments of the scholars. The number of the hadith in the collection is approximately 7563, or 9082 if all the regulations, comments, and observations are counted. The number of hadith where only the words of the Prophet are recorded is 2607, with an additional 1341 pending [14].
The collection includes 97 books and 386 chapters [15]. The narrators in the collection number 1597, with 42 female narrators. There are 153 Companions of the Prophet who are mentioned, and 304 sheikhs who are direct teachers of Imam Bukhari [15].
Preservation and Transmission: The sources emphasize that the preservation of Hadith is a divine blessing. A specific manuscript of Sahih Bukhari written 750 years ago is highlighted to show the accuracy of transmission [3]. The manuscript, written by Imam Sharafuddin Union, was hidden and then rediscovered centuries later [3]. There are various manuscripts of Sahih Bukhari all over the world with little differences, which highlights its accurate preservation over time [3].
Commentaries and Gatherings:
The sources mention that scholars organize gatherings to celebrate the end of the reading of Sahih Bukhari, with the first such event held by Imam Ibn Hajar al-Asqalani [4, 16]. Such gatherings, and the recitation of the entire book, is referred to as Khatam al-Bukhari [17].
Commentaries on Sahih Bukhari, such as Fath al-Bari, by Imam Ibn Hajar al-Asqalani, are also discussed, highlighting the tradition of scholarly analysis of this text [16].
The sources note the historical practice of celebrating the completion of Sahih al-Bukhari, which involves large gatherings of scholars and other prominent people [16, 18].
Such gatherings are described as a way to revive the culture of knowledge [18].
Role in Islamic Life:
The recitation of Sahih Bukhari is believed to avert diseases, and to bring blessings and solutions to problems [19, 20]. The concept of tawassul, using Sahih Bukhari as a means to seek blessings from Allah is mentioned [1].
The text states that traveling with Sahih Bukhari can save a boat from sinking, highlighting the symbolic and spiritual value attached to the book [1, 19].
The sources state that Imam Bukhari included many hadith about the love of the Prophet and the importance of following the Prophet’s example [21, 22].
Authenticity and Scope:
The sources note that not all authentic hadith are contained within Sahih Bukhari [7, 23, 24]. Imam Bukhari himself is quoted as saying that he did not include all authentic hadith in his collection to keep it from being too large [7, 23]. It is emphasized that other books of hadith also contain authentic material, and that it is ignorance to limit authentic hadith to the contents of Sahih Bukhari alone [7, 23].
The sources discuss a seven-level system for categorizing the authenticity of hadith, which is based on which collections the hadith is found in, and whether the hadith meets the specific conditions of hadith scholars. According to this system, hadith in Sahih Bukhari and Sahih Muslim are the most authentic, but hadith in other collections may also be considered authentic [24].
Imam Bukhari’s Character and Methods:
Imam Bukhari is described as a very pious man, who was known for his devotion to prayer and reading the Quran [25]. It is mentioned that his mother prayed for him and that he was granted the blessing of having his eyesight restored.
The text highlights Imam Bukhari’s refusal to bring knowledge to the courts of kings, and his decision to be exiled instead, which is used as an example of how scholars should not compromise their principles for worldly gain [26, 27].
The text emphasizes Imam Bukhari’s love for the Prophet, as evidenced by the way he structured his book, by his selection of hadith, and by his personal devotion to the Prophet [8, 9].
Imam Bukhari is said to have visited the grave of the Prophet before writing his collection [19].
Narrators of Sahih Bukhari: The sources name various scholars who transmitted Sahih Bukhari and include both Muhaddith (scholars of hadith) and Sufi mystics [28]. The four most famous are Imam Ibrahim bin Muhaq Al-Nusr Ash’arabat al-Bukhari, Imam Abu Muhammad Hamad bin Shakir al-Nasfi, Imam Abu Talha Mansoor bin Muhammad al-Bazi, and Imam Abu Abdullah Muhammad bin Yusuf al-Farbari [15, 28]. Imam Farbari is considered the most reliable source for the text of Sahih Bukhari, and the lineage of the transmission of hadith to Imam Farbari is detailed [28].
Relevance to Contemporary Issues: The sources connect the importance of Sahih Bukhari to the contemporary issue of sectarianism, stating that Muslims should unite on the basis of shared beliefs and practices, as taught in the hadith. They also emphasize the need to avoid declaring other Muslims infidels [1, 2]. The text argues that the Khawarij, who are condemned at the end of Sahih Bukhari, are an example of the dangers of extremism and declaring other Muslims as infidels [12, 13].
In summary, Sahih Bukhari is portrayed as a highly important and reliable collection of hadith, compiled by a great scholar who was deeply devoted to the Prophet Muhammad. The text emphasizes the book’s importance in Islamic life, while also cautioning against limiting Hadith knowledge to this book alone and using it to justify division and extremism [8, 9].
Love for the Prophet Muhammad in Islam
The sources emphasize the profound significance of love for the Prophet Muhammad (Ishq Rasool and Mohabbate Rasool) in Islam, portraying it as a core element of faith and practice, and a central theme in Sahih Bukhari [1, 2]. Here’s a detailed exploration of this concept:
Centrality of Love for the Prophet: The sources assert that love for the Prophet is a fundamental aspect of Islamic belief and practice [2, 3]. It is presented not just as an emotion but as a defining principle that should shape the actions and character of a believer [4, 5]. This love is not just a matter of personal devotion but also a foundation for unity among Muslims [3].
Manifestations of Love: The sources describe several ways in which love for the Prophet is expressed:
Following the Prophet’s example: True love for the Prophet is demonstrated by adhering to his teachings and emulating his behavior and character [4, 5]. This includes adopting his ways in matters of eating, drinking, praying, and all other aspects of life [5].
Deep respect and longing: The sources highlight a deep respect and yearning for the Prophet. Imam Bukhari is described as having a deep love for the Prophet, and this love motivated him to collect hadith [6, 7].
Recitation of Sahih Bukhari: The text notes that the recitation of Sahih Bukhari, which contains the Prophet’s words and actions, is a form of expressing love and seeking blessings [8, 9].
Gatherings and celebrations: Organizing gatherings to celebrate the end of the reading of Sahih Bukhari is seen as an expression of love for the Prophet and a way to revive the culture of knowledge [10].
Love for the Prophet in Sahih Bukhari: The sources highlight Imam Bukhari’s emphasis on the Prophet’s love in his collection of hadith:
Starting with Prophethood: Imam Bukhari begins his book with the mention of Prophethood, which is unique among other hadith collections [2]. This is presented as an indication of the Imam’s focus on the Prophet and his message [11].
Hadith Selection: Imam Bukhari is said to have selected hadiths that show the love of the Prophet in various contexts [2]. He emphasizes the love of the Prophet in twelve places, while also including 33 hadith about the Prophet and his family, particularly Sayyida Fatima, Sayyidna Ali, Sayyidna Imam Hasan, and Sayyidna Imam Hussain [12].
Recurring Themes: The sources highlight recurring themes in Sahih Bukhari that demonstrate love and respect for the Prophet. For instance, the incident of the Prophet showing his face during prayer is repeated six times, and the incident of Sayyiduna Siddique Akbar stepping aside during prayer to allow the Prophet to lead the prayer is repeated nine times in the collection [12-15]. These are seen as examples of the Imam’s emphasis on the Prophet’s importance and the love and devotion he inspired [16, 17].
Emphasis on the Prophet’s character: The first few hadith in Sahih Bukhari highlight the Prophet’s character, including his good behavior after the first revelation, and Sayyidah Khadijah’s description of his virtues [11].
The Trunk of the Date Palm: The sources describe how Imam Bukhari includes hadith relating how the dry trunk of a date palm cried when the Prophet began using a different place to deliver his sermons. This illustrates the love and connection between the Prophet and even inanimate objects [17, 18].
Love as a Condition of Faith: The sources stress that love for the Prophet is so important that it is essential for the perfection of faith. The hadith states that a person’s faith is not complete until they love the Prophet more than they love their own lives, parents, and children [12, 19].
Love and Deeds: The sources make it clear that love for the Prophet must be accompanied by righteous deeds [4, 5]. It should not be a mere claim or empty custom [4]. True love, according to the sources, manifests in adopting the Prophet’s character and following his teachings [5].
Avoiding Extremism: The text emphasizes that love for the Prophet must be balanced with a proper understanding of Islamic teachings. It warns against extremism and declaring other Muslims infidels. The sources condemn the Khawarij, who are presented as an example of those who are considered heretics because they did not adhere to the Sunnah and the example of the Prophet and the companions [20, 21].
Love as a Means to Divine Favor: The sources connect love for the Prophet with seeking divine favor and blessings from God. They highlight that those who love the Prophet and follow his example are more likely to receive Allah’s grace [4, 5].
Unity Through Love: The sources portray love for the Prophet as a unifying factor for the Muslim community, and they emphasize the need to focus on the common love for the Prophet and his teachings as a means of overcoming division and sectarianism [1, 22].
In summary, the sources depict love for the Prophet Muhammad as an indispensable aspect of the Islamic faith, which is to be demonstrated through devotion, emulation of his character, and righteous deeds. This love is presented as a unifying force for the Muslim community, a means to seek divine favor, and a central theme in the teachings of Sahih Bukhari.
Islamic Schools of Thought: Unity in Diversity
The sources discuss religious schools of thought within Islam, emphasizing both their diversity and the need for unity despite differences. Here’s a breakdown of the key points:
Diversity of Schools: The sources acknowledge the existence of various Islamic schools of thought (Masalik) [1], including:
Schools of jurisprudence: Hanafi, Maliki, Shafi’i, and Hanbali schools of jurisprudence are specifically mentioned [2]. The speaker identifies as following the Hanafi school of jurisprudence [3].
Schools of belief: The speaker identifies as being from the Ahle Sunnat Wal Jamaat in terms of belief [3].
Sufi orders: The Qadri order (Tariqat) is mentioned [3].
Other groups: The text also refers to the Deoband and Bareilly schools of thought [4].
The text also refers to the Ahl al-Hadith or Salafi school of thought [5, 6].
Commonalities: Despite the differences between these schools, the sources stress that there are more commonalities than differences [7].
The core of the religion, the Hadith and Sunnah of the Prophet, is a common ground for all [1, 7]. The sources emphasize the need to focus on these commonalities rather than the differences to foster unity and solidarity [7].
Love for the Prophet is presented as the greatest common asset of the Ummah, and a basis for unity [3].
Validity of Different Schools: The sources suggest that all Islamic schools of thought contain some part of the truth [3, 8]. It is asserted that no single school possesses the entirety of the truth, but rather, each has a portion of it [3].
The speaker argues against the idea that only one school of thought is correct, stating that “the right lies in all of them” [3].
The speaker uses the analogy of heaven to demonstrate this point, stating it would be illogical for only one Imam to be admitted to heaven while others are excluded [8]. The speaker wonders where the Imams such as Sufyan Thori, Abdullah Bin Mubarak, Sufyan Ibn Aina, Waqi bin Al-Jarrah, Imam Bukhari and Imam Muslim will be placed if that were the case [8].
The text states that the truth is contained in all Islamic schools of thought and religions, and everyone has some part of the right [3].
Sectarianism and Conflict: The sources strongly condemn sectarianism and sub-religious conflicts, emphasizing the need to eliminate or minimize such divisions [7]. The sources express concern that differences have led to Muslims declaring each other infidels [1, 9]. The sources highlight that in the past, people used to bring non-Muslims into Islam through their good behavior, whereas now Muslims exclude each other from Islam because of minor differences [9].
Unity and Solidarity: The text emphasizes the importance of unity and solidarity (Ittihad wa Ittifaq) within the Ummah [1, 7]. The speaker calls for the demolition of the “walls” of division and confusion [1, 9] and for focusing on what unites Muslims, such as the love of the Prophet and the knowledge of the Hadith and Sunnah [1, 3, 7]. The sources call for unity based on the knowledge of Hadith and Sunnah [7].
Moderation and Centrality: The sources stress the need to create moderation and centrality within the Ummah and to eliminate extremism [3]. It is noted that there is a need to revive the culture of knowledge and connection with Hadith and Sunnah, which have been disconnected [5, 7].
The Importance of Knowledge: The sources see a connection between religious knowledge and unity. By focusing on commonalities through the Hadith and Sunnah, Muslims can avoid the problems of sectarianism and conflict.
In summary, the sources advocate for a balanced approach that acknowledges the diversity of Islamic schools of thought while emphasizing the need for unity, mutual respect, and a focus on the common ground of the Hadith, Sunnah, and love for the Prophet. The sources call for setting aside differences and sectarianism for the sake of unity within the Ummah and the pursuit of common religious goals.
Affiliate Disclosure: This blog may contain affiliate links, which means I may earn a small commission if you click on the link and make a purchase. This comes at no additional cost to you. I only recommend products or services that I believe will add value to my readers. Your support helps keep this blog running and allows me to continue providing you with quality content. Thank you for your support!