如何在Python中选择当前和去年的日期范围

2024-04-26 03:22:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从两个日期之间的系列中选择数据。使用它可以正常工作航向位置和mask,但我想让它自动获取当前年度数据和去年数据,而无需手动输入。在

f是输入

f.head(3)
Out[37]: 
0   2011-08-02
1   2011-08-12
2   2011-08-15
Name: receiveddate, dtype: datetime64[ns]

我的代码是

^{pr2}$

我在考虑使用pandas和yearend和yearbegin,但是时间戳语法出现了错误。我试过了:

start_date2015 = pd.tseries.offsets.YearBegin(1)#datetime.datetime(2015, 4, 1)
start_date2015 = start_date2015.to_timestamp

得到了AttributeError: 'YearBegin' object has no attribute 'to_timestamp',但我之前不需要给时间戳,错误是ValueError: Cannot convert Period to Timestamp unambiguously. Use to_timestamp我想有一个简单的方法可以做到这一点,但我完全不知道。在


Tags: to数据datetime错误时间mask手动out
1条回答
网友
1楼 · 发布于 2024-04-26 03:22:37

要从当前年度和去年的f中选择所有行:

year = pd.datetime.now().year
mask = f.dt.year.isin([year-1, year])
f.loc[mask]

或者,您可以使用以下方法获取当前年份:

^{pr2}$

偏移量,例如pd.tseries.offsets.YearBegin(1)用于从时间戳中添加或减去时间量:

In [122]: pd.to_datetime('now')
Out[122]: Timestamp('2015-08-20 17:40:59')

In [123]: pd.to_datetime('now') + pd.tseries.offsets.YearBegin(1)
Out[123]: Timestamp('2016-01-01 17:41:04')

补偿本身不是日期。在

相关问题 更多 >