【问题标题】:How to swap months and days in a datetime object?如何在日期时间对象中交换月份和日期?
【发布时间】:2015-11-22 02:19:38
【问题描述】:

我在 pandas 数据框中有一列日期为:

年、日、月、时、分、秒

2015-09-03 14:32:00

我想把它变成

年、月、日、时、分、秒

2015-03-09 14:32:00

【问题讨论】:

    标签: python datetime pandas dataframe


    【解决方案1】:

    您可以apply 为您的日期添加一个 lambda 并致电 datetime.strftime

    In [168]:
    # create sample df
    df = pd.DataFrame({'date':['2015-09-03 14:32:00']})
    df['date'] = pd.to_datetime(df['date'])
    df
    
    Out[168]:
                     date
    0 2015-09-03 14:32:00
    
    In [171]:
    import datetime as dt
    # apply strftime
    df['date'] = df['date'].apply(lambda x: dt.datetime.strftime(x, '%Y-%d-%m %H:%M:%S'))
    df
    
    Out[171]:
                      date
    0  2015-03-09 14:32:00
    

    【讨论】:

    • 我在我的 df 上试了一下,我得到:AttributeError: 'DataFrame' object has no attribute 'datetime'
    • 让我不得不导入日期时间
    • 是的,我更新了我的代码示例以添加行 import datetime as dt
    【解决方案2】:

    可以使用python内置的datetime模块进行转换:

    from datetime import datetime
    datetime.strptime("2015-09-03 14:32:00", "%Y-%d-%m %H:%M:%S").strftime("%Y-%m-%d %H:%M:%S")
    

    【讨论】:

      【解决方案3】:

      您将月份与日期从 2019-22-02 交换到 2019-02-22 如果您只有日期:

      pd.to_datetime("2019-22-02", yearfirst=True, dayfirst=False, format='%Y-%d-%m')

      您可以将日期“2019-22-02”替换为您的 df 日期列。

      【讨论】:

        猜你喜欢
        • 2017-04-23
        • 1970-01-01
        • 2019-01-07
        • 2023-03-17
        • 2017-04-05
        • 1970-01-01
        • 2012-04-30
        • 1970-01-01
        • 2020-01-15
        相关资源
        最近更新 更多