【问题标题】:Convert string (2015-Q1) to date (2015-03-31) in python [duplicate]在python中将字符串(2015-Q1)转换为日期(2015-03-31)[重复]
【发布时间】:2018-09-06 23:45:55
【问题描述】:

我有一个 pandas 数据框,其中一列包含年份和季度的字符串,格式如下:2015-Q1

我的问题:​如何将其转换为季度的最后一天,即2015-03-31

【问题讨论】:

    标签: python pandas timestamp


    【解决方案1】:

    你可以试试

    pd.to_datetime(s).apply(lambda x : pd.Period(x, freq='Q').end_time)
    Out[252]: 
    0   2015-03-31
    1   2015-03-31
    2   2015-03-31
    3   2015-03-31
    4   2015-03-31
    5   2015-03-31
    6   2015-03-31
    7   2015-03-31
    8   2015-03-31
    9   2015-03-31
    dtype: datetime64[ns]
    

    【讨论】:

    • 不知道是不是更快,也可以pd.to_datetime(s).dt.to_period('Q').dt.end_time
    • @user3483203 我觉得你的方法效率更高
    【解决方案2】:

    您可以在假设每个季度都在同一日期结束的情况下编写一个函数(对于该季度末所涉及的所有月份都是如此)。然后您可以将此功能应用于所有需要更改的条目。

    def string_concatenation(name):
        data = name.split("-")
        if data[1] == "Q1":
            return_value = data[0] + "-03-31"
        elif data[1] == "Q2":
            return_value = data[0] + "-06-30"
        elif data[1] == "Q3":
            return_value = data[0] + "-09-30"
        elif data[1] == "Q4":
            return_value = data[0] + "-12-31"
    
        return return_value
    
    # returns "2015-09-30"
    print(string_concatenation("2015-Q3"))
    

    【讨论】:

      猜你喜欢
      • 2016-04-26
      • 1970-01-01
      • 2021-05-18
      • 1970-01-01
      • 2015-05-17
      • 2019-02-02
      • 2020-01-19
      • 2017-11-17
      • 2016-05-03
      相关资源
      最近更新 更多