Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन प्रोग्राम: Series में मान्य तारीखों (Valid Dates) को फ़िल्टर करें

समस्या विवरण

स्ट्रिंग Series से केवल मान्य तारीख फॉर्मेट (YYYY-MM-DD) वाले तत्व चुनें।

इनपुट Series

0    2010-03-12
1    2011-3-1
2    2020-10-10
3    11-2-2
dtype: object

अपेक्षित आउटपुट

0    2010-03-12
2    2020-10-10
dtype: object

समाधान 1: Regex पैटर्न \d{4}\W\d{2}\W\d{2} (सुझावित)

import pandas as pd
import re

l = ['2010-03-12','2011-3-1','2020-10-10','11-2-2']
data = pd.Series(l)

# पैटर्न: 4 अंक, सेपरेटर, 2 अंक, सेपरेटर, 2 अंक
pattern = r"\d{4}\W\d{2}\W\d{2}"
result = pd.Series(filter(lambda x: re.match(pattern, x), data))

print("मान्य तारीखें:")
print(data[data.isin(result)])

समाधान 2: लूप में regex मिलान

import pandas as pd
import re

l = ['2010-03-12','2011-3-1','2020-10-10','11-2-2']
data = pd.Series(l)

print("मान्य तारीखें (लूप विधि):")
for idx, val in data.items():
    if re.match(r"\d{4}\W\d{2}\W\d{2}", val):
        print(idx, val)

आउटपुट

मान्य तारीखें:
0    2010-03-12
2    2020-10-10
dtype: object

सीमा: यह केवल फॉर्मेट जांचता है, तारीख की वैधता नहीं (जैसे 2020-02-30 पास हो जाएगा)। वास्तविक तारीख सत्यापन के लिए pd.to_datetime(errors='coerce') उपयोग करें।

बेहतर तरीका: pd.to_datetime

valid = pd.to_datetime(data, errors='coerce').notna()
print(data[valid])
  1. - पायथन प्रोग्राम: Series में विषम इंडेक्स स्थितियों को यादृच्छिक अपरकेस वॉवेल से बदलें

    समस्या विवरण Series के सभी विषम (odd) इंडेक्स (1, 3, 5...) पर मौजूद मानों को यादृच्छिक बड़े अक्षर वाले वॉवेल (A, E, I, O, U) से बदलें। इनपुट Series 0 1 1 2 2 3 3 4 4 5 dtype: int64 संभावित आउटपुट (यादृच्छिक) 0 1 1 O 2 3 3 E 4 5 dtype: object समाधान Series बनाएं।

  1. - पायथन प्रोग्राम: Series में पूर्ण वर्ग (Perfect Squares) संख्याएं फ़िल्टर करें

    समस्या विवरण दिए गए Series से केवल पूर्ण वर्ग (perfect square) संख्याएं निकालें। इनपुट Series 0 14 1 16 2 30 3 49 4 80 dtype: int64 अपेक्षित आउटपुट 1 16 3 49 dtype: int64 समाधान 1: math.sqrt और lambda filter import pandas as pd import math as m l = [14,16,30,49,80] data = pd

  1. - पायथन प्रोग्राम: दी गई संख्या N में अंकों की कुल संख्या गिनें

    समस्या विवरण एक संख्या N दी गई है, उसमें कुल कितने अंक (digits) हैं, यह गिनें। अग्रणी शून्य नहीं गिने जाते। उदाहरण 1 N = 891452 आउटपुट: 6 उदाहरण 2 N = 0074515 आउटपुट: 5 व्याख्या: अग्रणी 00 गिने नहीं जाते। समाधान 1: लूप और पूर्णांक विभाजन (गणितीय) 0: count += 1 n //= 10 return