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