【问题标题】:Extract the year_month from date object, while keeping the outcome as date object从日期对象中提取 year_month,同时将结果保留为日期对象
【发布时间】:2021-02-26 11:44:00
【问题描述】:

我想从日期对象中提取 year_month,同时将结果保留为日期对象。 例如“2020-11-04”可以表示为:

yr_month = "2020 年 11 月"

yr_month_date = "2020-11-01"

我正在寻找一个 python 命令,它输出与以下 R 代码类似的结果。

library(tsibble)
library(lubridate)

date <- as_date("2020-11-14")

yr_month <- yearmonth(date)
yr_month

[1]“2020 年 11 月”

yr_month_date <- as_date(yr_month)
yr_month_date

[1]“202-11-01”

【问题讨论】:

  • 您要从中提取(并返回)信息的“日期对象”是什么类型?
  • 是日期列类型。
  • “日期列”不是 Python 数据类型。

标签: python r time-series


【解决方案1】:
import pandas as pd
  
df = [ 
    ('Stuti', '2019-01-30'), 
    ('Saumya', '2019-02-28')
]

df = pd.DataFrame(df, columns = ['name', 'date'])

df['yr_month'] = pd.to_datetime(df['date']).dt.strftime('%Y-%m-01')

df['yr_month']

'2019-01-01'
'2019-02-01'

【讨论】:

    【解决方案2】:

    如果使用时间戳/日期时间字符串,则如下所示:

    from datetime import datetime
    
    dt = datetime.strptime("2020-11-14", "%Y-%m-%d")
    datetime.datetime(2020, 11, 14, 0, 0)
    
    dt.strftime('%Y %b')
    '2020 Nov'
    
    dt.strftime('%Y-%m-01')
     '2020-11-01'
    

    如果您从datetime 对象开始,则可以跳过第一步。

    对于 strptimestrftime 的用法,请参阅 Python 文档中的 Time Formatting 部分。

    【讨论】:

    • 感谢您的提示,最终我想出了一个答案。
    猜你喜欢
    • 2019-01-07
    • 2022-01-13
    • 2016-01-13
    • 2018-10-12
    • 1970-01-01
    • 2017-01-08
    • 1970-01-01
    • 2012-03-18
    • 1970-01-01
    相关资源
    最近更新 更多