pd.date_range 无返满足不是一正季度情况,
时间: 2023-12-07 18:37:11 浏览: 87
非常抱歉,之前的代码确实无法处理非标准的季度情况。在处理这种情况时,我们可以使用 `pd.offsets.QuarterEnd` 来生成季度结束日期。
以下是一个可以处理非正季度的函数示例:
```python
import pandas as pd
def get_quarterly_data(start_date, end_date):
start = pd.to_datetime(start_date)
end = pd.to_datetime(end_date)
quarters = []
current_quarter = start
while current_quarter <= end:
quarter_start = current_quarter.date()
quarter_end = (current_quarter + pd.offsets.QuarterEnd()).date()
quarters.append((quarter_start, quarter_end))
current_quarter += pd.offsets.DateOffset(months=3)
return quarters
# 示例用法
start_date = '2022-01-03'
end_date = '2022-12-12'
quarters = get_quarterly_data(start_date, end_date)
for quarter in quarters:
print(quarter)
```
在这个修改后的函数中,我们首先将起始日期和结束日期转换为 pandas 的 `Timestamp` 对象。然后,我们使用一个循环来逐个生成季度数据。在每次循环中,我们计算当前季度的起始日期和结束日期,并将它们添加到结果列表中。然后,我们通过增加 `pd.offsets.DateOffset(months=3)` 来将当前日期向后移动 3 个月,以生成下一个季度的数据。这样,即使是非正季度,也能正确生成季度数据。
再次感谢你的指出,希望这次的回答满足了你的要求!如果还有其他问题,请随时提问。
阅读全文