【问题标题】:Conversion of dates in the dataframe column into MM/DD/YYYY将数据框列中的日期转换为 MM/DD/YYYY
【发布时间】:2016-08-03 23:53:30
【问题描述】:

我有 4 个名为 df1df2df3df4 的数据框,其中有一列 Date。该列由不同格式的日期组成。 df1 具有 int64 类型的日期列,df2 具有对象类型的日期列,df3 具有对象类型的日期列,df4 具有对象类型的日期列。以下是数据框及其数据。

df1:
          Date
0     20160301
1     20160301
2     20160301
3     20160301

df2: 
      Date
0   01/03/2016
1   01/03/2016
2   01/03/2016

df3:
      Date
0   31-Mar-16
1   31-Mar-16
2   31-Mar-16

df4:
      Date
0  25/02/2016
1  25/02/2016
2  25/02/2016

我想将这些日期转换为mm/dd/yyyy 类型的date。谁可以帮我这个事?

【问题讨论】:

    标签: python date pandas dataframe


    【解决方案1】:

    我认为你可以使用to_datetimedt.strftime,但是type不是datetime,而是string

    df1['Date'] = pd.to_datetime(df1['Date'], format='%Y%m%d').dt.strftime('%m/%d/%Y')
    df2['Date'] = pd.to_datetime(df2['Date']).dt.strftime('%m/%d/%Y')
    df3['Date'] = pd.to_datetime(df3['Date']).dt.strftime('%m/%d/%Y')
    df4['Date'] = pd.to_datetime(df4['Date']).dt.strftime('%m/%d/%Y')
    
    print df1
    print df2
    print df3
    print df4
             Date
    0  03/01/2016
    1  03/01/2016
    2  03/01/2016
    3  03/01/2016
             Date
    0  01/03/2016
    1  01/03/2016
    2  01/03/2016
             Date
    0  03/31/2016
    1  03/31/2016
    2  03/31/2016
             Date
    0  02/25/2016
    1  02/25/2016
    2  02/25/2016
    
    print type(df1.at[0,'Date'])
    <type 'str'>
    

    如果要datetime,格式为YY-MM-DD

    df1['Date'] = pd.to_datetime(df1['Date'], format='%Y%m%d')
    df2['Date'] = pd.to_datetime(df2['Date'])
    df3['Date'] = pd.to_datetime(df3['Date'])
    df4['Date'] = pd.to_datetime(df4['Date'])
    
    print df1
    print df2
    print df3
    print df4
            Date
    0 2016-03-01
    1 2016-03-01
    2 2016-03-01
    3 2016-03-01
            Date
    0 2016-01-03
    1 2016-01-03
    2 2016-01-03
            Date
    0 2016-03-31
    1 2016-03-31
    2 2016-03-31
            Date
    0 2016-02-25
    1 2016-02-25
    2 2016-02-25
    
    print type(df1.at[0,'Date'])
    <class 'pandas.tslib.Timestamp'>
    

    有关格式化datetime 的更多信息是here

    【讨论】:

    • 我认为 df1df2 不清楚,如果第一个是字符串中的天或月。我的解决方案正确吗?
    猜你喜欢
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-22
    • 2013-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多