मान लें कि आपके पास आर्मस्ट्रांग संख्याओं को फ़िल्टर करने के लिए एक श्रृंखला और परिणाम है,
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
-
लूप के दौरान बनाएं और अस्थायी> 0 की जांच करें और शेष की गणना अस्थायी% 10 से करें। शेष का घन लेकर आर्मस्ट्रांग मान जोड़ें और अस्थायी मान को 10 से विभाजित करें जब तक कि यह लूप को समाप्त करने के लिए 0 तक न पहुंच जाए। इसे नीचे परिभाषित किया गया है,
while(temp>0): rem = temp % 10 armstrong = armstrong + (rem**3) temp = temp // 10
-
अस्थायी मान के विरुद्ध मूल मान की तुलना करने के लिए शर्त सेट करें। यदि यह मेल खाता है, तो मानों को सूची में जोड़ दें।
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