【发布时间】:2018-09-06 23:45:55
【问题描述】:
我有一个 pandas 数据框,其中一列包含年份和季度的字符串,格式如下:2015-Q1
我的问题:如何将其转换为季度的最后一天,即2015-03-31。
【问题讨论】:
我有一个 pandas 数据框,其中一列包含年份和季度的字符串,格式如下: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]
【讨论】:
pd.to_datetime(s).dt.to_period('Q').dt.end_time
您可以在假设每个季度都在同一日期结束的情况下编写一个函数(对于该季度末所涉及的所有月份都是如此)。然后您可以将此功能应用于所有需要更改的条目。
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"))
【讨论】: