我有一个熊猫数据帧,其中一列包含以下格式的年份和季度字符串: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"))