在python中转换字符串(2015-Q1)至今(2015-03-31)



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

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

你可以试试

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]

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

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

最新更新