मान लीजिए आपके पास एक सीरीज है और आर्मस्ट्रांग संख्याओं को फ़िल्टर करने का परिणाम है,
original series is 0 153 1 323 2 371 3 420 4 500 dtype: int64 Armstrong numbers are:- 0 153 2 371 dtype: int64
इसे हल करने के लिए, हम नीचे दिए गए चरणों का पालन करेंगे −
एक सीरीज परिभाषित करें।
एक खाली सूची बनाएं और सीरीज के सभी डेटा तक पहुंचने के लिए एक फॉर लूप सेट करें।
आर्मस्ट्रांग का प्रारंभिक मान 0 है और सीरीज के तत्वों को एक-एक करके संग्रहीत करने के लिए टेम्प वेरिएबल बनाएं। यह नीचे परिभाषित है,
l = [] for val in data: armstrong = 0 temp = val
व्हाइल लूप बनाएं और temp>0 की जांच करें और temp%10 से शेषफल की गणना करें। आर्मस्ट्रांग मान में शेषफल का घन जोड़ें और टेम्प मान को 10 से विभाजित करें जब तक कि यह लूप को समाप्त करने के लिए 0 तक न पहुंच जाए। यह नीचे परिभाषित है,
while(temp>0): rem = temp % 10 armstrong = armstrong + (rem**3) temp = temp // 10
मूल मान की तुलना टेम्प मान के साथ करने के लिए एक if कंडीशन सेट करें। यदि यह मेल खाता है, तो मानों को सूची में जोड़ें।
if(armstrong==val): l.append(val)
अंत में, isin() का उपयोग करके सूची मान सीरीज में मौजूद हैं या नहीं जांचें। यह नीचे परिभाषित है,
data[data.isin(l)]
उदाहरण
बेहतर कार्यान्वयन के लिए नीचे दिए गए कोड को देखें −
import pandas as pd data = pd.Series([153,323,371,420,500]) print("original series is\n", data) l = [] for val in data: armstrong = 0 temp = val while(temp>0): rem = temp % 10 armstrong = armstrong + (rem**3) temp = temp // 10 if(armstrong==val): l.append(val) print("Armstrong numbers are:-") print(data[data.isin(l)])
आउटपुट
original series is 0 153 1 323 2 371 3 420 4 500 dtype: int64 Armstrong numbers are:- 0 153 2 371 dtype: int64