Pandas 如何根据当前日期查找上月数据?

Pandas 如何根据当前日期查找上月数据?,pandas,datetime,Pandas,Datetime,有没有办法根据日期获取最后一个月的数据?我已经搜索了很多,但我找不到一个好的和精确的解决方案。如果当前日期在索引420上,则日期为2012-01-09。我想要一个数据框,包含从2011-12-09到2012-01-09的数据 将熊猫作为pd导入 将numpy作为np导入 times=pd.DataFrame(pd.date_范围('2012-01-01','2012-04-01',freq='30min'),columns=['date'])) 时间['date']=pd.to_datetime

有没有办法根据日期获取最后一个月的数据?我已经搜索了很多,但我找不到一个好的和精确的解决方案。如果当前日期在索引420上,则日期为2012-01-09。我想要一个数据框,包含从2011-12-09到2012-01-09的数据

将熊猫作为pd导入
将numpy作为np导入
times=pd.DataFrame(pd.date_范围('2012-01-01','2012-04-01',freq='30min'),columns=['date']))
时间['date']=pd.to_datetime(时间['date'])
times['value']=np.random.randint(1,6,times.shape[0])
months=times.iloc[0:420]。对值进行排序(按='date',升序=True)。设置索引('date')。最后('1M'))
使用.last命令,结果将在2012-01-01结束,因为这是最后一个月。我理解,但有没有办法不使用时间增量或相对增量来查找最近一个月的数据?在这两种情况下,如果缺少日期,则会出现错误,这也是一个问题


谢谢。

我想你要找的是pd。您可以将所有日期时间转换为一个月,然后使用该时间段进行搜索

#将日期时间改为月份
时间[“月”]=时间[时间[“日期”].dt.至_期间(“m”)]
#将搜索日期改为句点
您的_日期=pd.期间(您的_日期,“m”)
#搜索时间
次数[次数[“月”]==您的日期]

您好,我已经测试了您的建议,但结果仍然与以前一样。没有更改。您可以使用pd.DateOffset和reindex/它正在执行您想要的操作。感知到的“怪异”来自于你的数据。每个周期30分钟意味着每天48个周期或每月1440个周期(假设每月30天)。420个周期太短,不能追溯到整整一个月。尝试将您的
iloc
更改为类似
iloc[0:2000]
的内容,您将得到您想要的