python 2.7 - Converting to date format in pandas -


i have dataframe contains column holds:

date: 31062005 072005 12005 2012 

i convert these dates format:

date: 31/06/2005 07/2005 01/2005 2012 

what simplest way this? fields not in date format yet, strings.

suppose write function

def convert_date(s):     if len(s) == 4:         return s     elif len(s) < 7:         return s[: -4].zfill(2) + '/' + s[-4: ]     else:         return s[: -6].zfill(2) + '/' + s[-6: -4].zfill(2) + '/' + s[-4] 

then if dates in df.dates, can use

>>> df.dates.apply(convert_date)                                    0    31/06/2 1    07/2005 2    01/2005 3       2012 name: dates, dtype: object 

note converts string in 1 form string in different form, meaning can't manipulate dates further. if want that, i'd suggest amend preceding function use appropriate datetime.datetime.strptime format matching length of string. this:

def convert_date(s):     if len(s) == 4:         return datetime.datetime.strptime('%y')     elif len(s) < 8:         return datetime.datetime.strptime('%m%y')     else:         return datetime.datetime.strptime('%d%m%y') 

note first date (with 31 days) seems illegal, though.


Comments

Popular posts from this blog

mysql - Dreamhost PyCharm Django Python 3 Launching a Site -

java - Sending SMS with SMSLib and Web Services -

python 3.5 - Pyqtgraph string in x tick -