डेटा विश्लेषण में तिथि श्रेणियों के आधार पर Pandas DataFrames को कुशलतापूर्वक फ़िल्टर करना एक महत्वपूर्ण कौशल है। Pandas इसे पूरा करने के लिए कई तरीके प्रदान करता है, प्रत्येक अपनी ताकत और कमजोरियों के साथ। यह लेख चार लोकप्रिय तरीकों का पता लगाता है, उनकी सिंटैक्स, दक्षता और उपयोग के मामलों की तुलना करता है।
विषयवस्तु की तालिका
- बूलियन मास्किंग के साथ फ़िल्टरिंग
.query()
विधि का उपयोग करना.isin()
विधि का उपयोग करना.between()
विधि का लाभ उठाना
बूलियन मास्किंग के साथ फ़िल्टरिंग
बूलियन मास्किंग सबसे मौलिक और लचीला तरीका प्रदान करता है। यह एक बूलियन एरे (मास्क) बनाता है जो निर्दिष्ट शर्तों के आधार पर पंक्तियों को फ़िल्टर करता है। यह विधि जटिल परिदृश्यों के लिए अत्यधिक अनुकूलनीय है।
import pandas as pd
data = {'Date': pd.to_datetime(['2023-10-26', '2023-11-15', '2023-12-01', '2024-01-10', '2024-02-20']),
'Value': [10, 20, 30, 40, 50]}
df = pd.DataFrame(data)
start_date = pd.to_datetime('2023-11-01')
end_date = pd.to_datetime('2024-01-01')
mask = (df['Date'] >= start_date) & (df['Date'] <= end_date)
filtered_df = df[mask] #df.loc[mask] से अधिक कुशल
print(filtered_df)
.query()
विधि का उपयोग करना
.query()
विधि फ़िल्टरिंग के लिए एक अधिक पठनीय और संक्षिप्त विकल्प प्रदान करती है। यह जटिल शर्तों के लिए विशेष रूप से फायदेमंद है।
start_date = '2023-11-01'
end_date = '2024-01-01'
filtered_df = df.query('@start_date <= Date <= @end_date')
print(filtered_df)
.isin()
विधि का उपयोग करना
.isin()
विधि उपयुक्त है जब आपको विशिष्ट तिथियों की सूची के आधार पर पंक्तियों का चयन करने की आवश्यकता होती है, न कि निरंतर श्रेणी के। बड़ी निरंतर श्रेणियों के लिए यह कम कुशल है।
dates_to_include = pd.to_datetime(['2023-11-15', '2023-12-01'])
filtered_df = df[df['Date'].isin(dates_to_include)]
print(filtered_df)
.between()
विधि का लाभ उठाना
.between()
विधि एक निरंतर तिथि श्रेणी के भीतर पंक्तियों का चयन करने के लिए एक सुव्यवस्थित दृष्टिकोण प्रदान करती है। यह कुशल और पढ़ने में आसान है।
start_date = pd.to_datetime('2023-11-01')
end_date = pd.to_datetime('2024-01-01')
filtered_df = df[df['Date'].between(start_date, end_date, inclusive='both')] #स्पष्टता के लिए inclusive तर्क जोड़ा गया
print(filtered_df)
संक्षेप में, Pandas तिथि-आधारित फ़िल्टरिंग के लिए विविध विधियाँ प्रदान करता है। इष्टतम विकल्प आपकी विशिष्ट आवश्यकताओं और कोडिंग शैली पर निर्भर करता है। बूलियन मास्किंग अधिकतम लचीलापन प्रदान करता है, .query()
पठनीयता को बढ़ाता है, और .between()
निरंतर श्रेणी चयन को सरल करता है। इष्टतम प्रदर्शन के लिए यह सुनिश्चित करने के लिए याद रखें कि आपका दिनांक कॉलम datetime64
dtype का है।