在python中将字符串(2015-Q1)转换为日期(2015-03-31)

时间:2018-09-06 15:33:48

标签: python pandas timestamp

我有一个pandas数据框,其中一列包含以下格式的年份和季度的字符串:public async Task<string> GetUserInfo() { authContext = new AuthenticationContext(authority, new FileCache()); // // Get an access token. // AuthenticationResult result = null; try { result = await authContext.AcquireTokenSilentAsync(ResourceId, clientId); username = result.UserInfo.DisplayableId; } }

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

2 个答案:

答案 0 :(得分:2)

您可以尝试

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]

答案 1 :(得分:0)

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

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"))