Converting different date time formats to MM/DD/YYYY format in pandas dataframe

后端 未结 3 1722
长情又很酷
长情又很酷 2020-12-11 09:54

I have a date column in a pandas.DataFrame in various date time formats and stored as list object, like the following:

            date
1    [May 23rd, 2011]         


        
3条回答
  •  天命终不由人
    2020-12-11 10:23

    Given your sample data, with the addition of a NaT, this works:

    Code:

    df.date.apply(lambda x: pd.to_datetime(x).strftime('%m/%d/%Y')[0])
    

    Test Code:

    import pandas as pd
    
    df = pd.DataFrame([
        [['']],
        [['May 23rd, 2011']],
        [['January 1st, 2010']],
        [['Apr. 15, 2008']],
        [['07-11-2013']],
        [['9/01/1995']],
        [['04/15/2000']],
        [['11/22/68']],
        [['12/1997']],
        [['08/2002']],
        [['2014']],
        [['2016']],
    ], columns=['date'])
    
    df['clean_date'] = df.date.apply(
        lambda x: pd.to_datetime(x).strftime('%m/%d/%Y')[0])
    
    print(df)
    

    Results:

                       date  clean_date
    0                    []         NaT
    1      [May 23rd, 2011]  05/23/2011
    2   [January 1st, 2010]  01/01/2010
    3       [Apr. 15, 2008]  04/15/2008
    4          [07-11-2013]  07/11/2013
    5           [9/01/1995]  09/01/1995
    6          [04/15/2000]  04/15/2000
    7            [11/22/68]  11/22/1968
    8             [12/1997]  12/01/1997
    9             [08/2002]  08/01/2002
    10               [2014]  01/01/2014
    11               [2016]  01/01/2016
    

提交回复
热议问题