समस्या विवरण
स्ट्रिंग 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])