2013-06-16 5 views
127

से डेटाफ्रेम कॉलम प्रकार को कनवर्ट करें मैं स्ट्रिंग्स के डेटाफ्रेम कॉलम (डीडी/एमएम/वाई वाई प्रारूप में) को डेटाटाइम में कैसे परिवर्तित कर सकता हूं?स्ट्रिंग से डेटाटाइम

उत्तर

214

सबसे आसान तरीका है to_datetime उपयोग करने के लिए है:

df['col'] = pd.to_datetime(df['col']) 

यह भी यूरोपीय समय के लिए एक dayfirst तर्क प्रदान करता है (लेकिन this isn't strict सावधान रहना)।

यहाँ यह कार्रवाई में है:

In [11]: pd.to_datetime(pd.Series(['05/23/2005'])) 
Out[11]: 
0 2005-05-23 00:00:00 
dtype: datetime64[ns] 

आप पास कर सकते हैं एक विशिष्ट format:

In [12]: pd.to_datetime(pd.Series(['05/23/2005']), format="%m/%d/%Y") 
Out[12]: 
0 2005-05-23 
dtype: datetime64[ns] 
+0

आपके रीप्ले के लिए धन्यवाद, क्या मैं इसका प्रारूप परिभाषित कर सकता हूं? '% d /% m /% वाई' की तरह? बहुत सराहना – perigee

+0

ठीक है, यह दावा करने का दावा करता है लेकिन मुझे लगता है कि इसे अनदेखा किया जाता है। : –

+0

यह काम करता है, प्रारूप स्ट्रिंग काम करता है, आपको बहुत धन्यवाद – perigee

6

यदि आपका तारीख स्तंभ प्रारूप '2017/01/01' आप की एक श्रृंखला है इसे डेटाटाइम में बदलने के लिए पांडा अस्थिर का उपयोग कर सकते हैं।

df['date'] = df['date'].astype('datetime64[ns]')

या का उपयोग datetime64 [D] अगर आप चाहते हैं डे परिशुद्धता और नहीं नैनोसेकंड

print(type(df_launath['date'].iloc[0]))

पैदावार

<class 'pandas._libs.tslib.Timestamp'> जब आप pandas.to_datetime

का उपयोग के रूप में ही

आप इसे अन्य के साथ आजमा सकते हैं तब प्रारूप '% वाई-% एम-% डी' लेकिन कम से कम यह काम करता है।

संबंधित मुद्दे