Pandas डेटा हेरफेर और विश्लेषण के लिए एक शक्तिशाली Python लाइब्रेरी है। तिथियों और समय के साथ काम करना एक सामान्य कार्य है, और अक्सर, आपके डेटा में स्ट्रिंग या अन्य गैर-datetime स्वरूपों में तिथि और समय की जानकारी हो सकती है। यह लेख Pandas DataFrame कॉलम को datetime डेटा प्रकार में बदलने के लिए कई कुशल तकनीकों का प्रदर्शन करता है, जिससे समय-श्रृंखला विश्लेषण और हेरफेर काफी आसान हो जाता है।
विषयसूची:
pd.to_datetime()
के साथ कुशल Datetime रूपांतरणapply()
के साथ जटिल स्वरूपों को संभालना- एक साथ कई कॉलम परिवर्तित करना
- सरल रूपांतरणों के लिए
astype()
का उपयोग करना
1. pd.to_datetime()
के साथ कुशल Datetime रूपांतरण
सबसे सरल और अनुशंसित तरीका pd.to_datetime()
फ़ंक्शन का उपयोग करना है। यह फ़ंक्शन अत्यधिक बहुमुखी है और विभिन्न प्रकार के तिथि और समय स्वरूपों को संभालने में सक्षम है।
import pandas as pd
data = {'date_str': ['2024-03-08', '2024-03-09', '2024-03-10']}
df = pd.DataFrame(data)
# 'date_str' कॉलम को datetime में बदलें
df['date'] = pd.to_datetime(df['date_str'])
print(df)
print(df.dtypes)
यह कोड स्निपेट तिथि स्ट्रिंग्स के कॉलम के साथ एक DataFrame बनाता है। pd.to_datetime()
स्वचालित रूप से स्वरूप का अनुमान लगाता है और स्ट्रिंग्स को datetime ऑब्जेक्ट में परिवर्तित करता है। dtypes
आउटपुट सफल रूपांतरण की पुष्टि करता है। pd.to_datetime()
समय घटकों वाले स्वरूपों को भी संभालता है और errors
पैरामीटर (जैसे, ‘coerce’ अमान्य तिथियों को NaT से बदलने के लिए) के माध्यम से त्रुटि हैंडलिंग प्रदान करता है।
2. apply()
के साथ जटिल स्वरूपों को संभालना
apply()
विधि बढ़ी हुई लचीलापन प्रदान करती है, खासकर जटिल तिथि स्वरूपों या कस्टम पार्सिंग तर्क से निपटने के दौरान।
import pandas as pd
data = {'date_str': ['Mar 8, 2024', 'Mar 9, 2024', 'Mar 10, 2024']}
df = pd.DataFrame(data)
# तिथि स्ट्रिंग को पार्स करने के लिए कस्टम फ़ंक्शन
def parse_date(date_str):
return pd.to_datetime(date_str, format='%b %d, %Y')
df['date'] = df['date_str'].apply(parse_date)
print(df)
print(df.dtypes)
यहाँ, एक विशिष्ट तिथि स्वरूप को संभालने के लिए एक कस्टम फ़ंक्शन parse_date
परिभाषित किया गया है। apply()
विधि ‘date_str’ कॉलम में प्रत्येक तत्व पर यह फ़ंक्शन लागू करती है। असंगत तिथि स्वरूपों से निपटने या विशेष हैंडलिंग की आवश्यकता होने पर यह दृष्टिकोण फायदेमंद है।
3. एक साथ कई कॉलम परिवर्तित करना
apply()
विधि को एक साथ कई कॉलम को परिवर्तित करने के लिए बढ़ाया जा सकता है।
import pandas as pd
data = {'date_str': ['Mar 8, 2024', 'Mar 9, 2024', 'Mar 10, 2024'],
'time_str': ['10:00:00', '12:30:00', '14:45:00']}
df = pd.DataFrame(data)
def parse_date_time(row):
return pd.to_datetime(row['date_str'] + ' ' + row['time_str'], format='%b %d, %Y %H:%M:%S')
df['datetime'] = df.apply(parse_date_time, axis=1)
print(df)
print(df.dtypes)
यह उदाहरण अलग-अलग कॉलम से तिथि और समय स्ट्रिंग्स को जोड़ता है। apply()
में axis=1
तर्क पंक्ति-वार फ़ंक्शन अनुप्रयोग को इंगित करता है।
4. सरल रूपांतरणों के लिए astype()
का उपयोग करना
astype()
विधि एक संक्षिप्त रूपांतरण विधि प्रदान करती है, लेकिन यह pd.to_datetime()
की तुलना में कम लचीली है। यह सबसे प्रभावी है जब आपकी तिथियाँ पहले से ही ऐसे स्वरूप में हैं जिसे Pandas सीधे व्याख्या कर सकता है।
import pandas as pd
data = {'date_str': ['2024-03-08', '2024-03-09', '2024-03-10']}
df = pd.DataFrame(data)
df['date'] = pd.to_datetime(df['date_str']) #पहले लचीलेपन के लिए pd.to_datetime का उपयोग करके datetime ऑब्जेक्ट में बदलें
df['date'] = df['date'].astype('datetime64[ns]') #अब हम astype का उपयोग कर सकते हैं
print(df)
print(df.dtypes)
जबकि astype
एक सीधा रूपांतरण प्रदान करता है, इसकी बेहतर त्रुटि हैंडलिंग और स्वरूप लचीलेपन के कारण आम तौर पर pd.to_datetime
को प्राथमिकता दी जाती है। ध्यान दें कि astype
लागू करने से पहले pd.to_datetime
का उपयोग करके प्रारंभिक रूपांतरण आवश्यक है; अन्यथा, एक त्रुटि होगी।
इष्टतम विधि आपके डेटा की जटिलता और विशिष्ट आवश्यकताओं पर निर्भर करती है। अधिकांश परिदृश्यों के लिए, pd.to_datetime()
दक्षता और लचीलेपन का सबसे अच्छा संतुलन प्रदान करता है। हालाँकि, आवश्यकतानुसार कस्टम फ़ंक्शन क्षमताओं की पेशकश करने के लिए apply()
विधि उपलब्ध है, और सरल मामलों के लिए astype
एक संक्षिप्त समाधान है जहाँ डेटा पहले से ही उपयुक्त स्वरूप में है।