जवाबों:
उपयोग करने का सबसे आसान तरीका है to_datetime
:
df['col'] = pd.to_datetime(df['col'])
यह dayfirst
यूरोपीय समय के लिए एक तर्क भी प्रस्तुत करता है (लेकिन सावधान रहें यह सख्त नहीं है )।
यहाँ यह कार्रवाई में है:
In [11]: pd.to_datetime(pd.Series(['05/23/2005']))
Out[11]:
0 2005-05-23 00:00:00
dtype: datetime64[ns]
आप एक विशिष्ट प्रारूप पास कर सकते हैं :
In [12]: pd.to_datetime(pd.Series(['05/23/2005']), format="%m/%d/%Y")
Out[12]:
0 2005-05-23
dtype: datetime64[ns]
DatetimeIndex(df['col']).to_pydatetime()
को पास करने वाले @shootingstars को काम करना चाहिए।
SettingWithCopyWarning
पर्याप्त सामग्री देता है
यदि आपका दिनांक स्तंभ '2017-01-01' प्रारूप का एक स्ट्रिंग है, तो आप इसे डेटाइम में परिवर्तित करने के लिए पांडा एस्टीज का उपयोग कर सकते हैं।
df['date'] = df['date'].astype('datetime64[ns]')
या आप डेटासिन64 [डी] का उपयोग करें यदि आप डे प्रिसेंस चाहते हैं और नैनोसेकंड नहीं
print(type(df_launath['date'].iloc[0]))
पैदावार
<class 'pandas._libs.tslib.Timestamp'>
वही जब आप pandas.to_datetime का उपयोग करते हैं
आप इसे अन्य प्रारूपों के साथ आजमा सकते हैं, फिर '% Y-% m-% d' लेकिन कम से कम यह काम करता है।
यदि आप मुश्किल स्वरूपों को निर्दिष्ट करना चाहते हैं तो आप निम्नलिखित का उपयोग कर सकते हैं:
df['date_col'] = pd.to_datetime(df['date_col'], format='%d/%m/%Y')
format
यहाँ पर अधिक जानकारी :
यदि आपके पास अपनी तारीख में प्रारूपों का मिश्रण है, तो infer_datetime_format=True
जीवन को आसान बनाने के लिए सेट करना न भूलें
df['date'] = pd.to_datetime(df['date'], infer_datetime_format=True)
स्रोत: pd.to_datetime
या यदि आप एक अनुकूलित दृष्टिकोण चाहते हैं:
def autoconvert_datetime(value):
formats = ['%m/%d/%Y', '%m-%d-%y'] # formats to try
result_format = '%d-%m-%Y' # output format
for dt_format in formats:
try:
dt_obj = datetime.strptime(value, dt_format)
return dt_obj.strftime(result_format)
except Exception as e: # throws exception when format doesn't match
pass
return value # let it be if it doesn't match
df['date'] = df['date'].apply(autoconvert_datetime)