我有一个熊猫DataFrame与“日期”列。现在我需要过滤掉DataFrame中日期在未来两个月之外的所有行。实际上,我只需要保留接下来两个月内的行。
实现这一目标的最佳方式是什么?
我有一个熊猫DataFrame与“日期”列。现在我需要过滤掉DataFrame中日期在未来两个月之外的所有行。实际上,我只需要保留接下来两个月内的行。
实现这一目标的最佳方式是什么?
当前回答
根据我的经验,前面的答案是不正确的,你不能传递一个简单的字符串,需要一个datetime对象。所以:
import datetime
df.loc[datetime.date(year=2014,month=1,day=1):datetime.date(year=2014,month=2,day=1)]
其他回答
如果您已经使用pd将字符串转换为日期格式。To_datetime你可以使用:
df = df [(df[日期]>”2018-01-01”)及(df[日期]<”2019-07-01”)
在pandas版本1.1.3中,我遇到了基于python datetime的索引降序排列的情况。在这种情况下
df.loc['2021-08-01':'2021-08-31']
返回空的。而
df.loc['2021-08-31':'2021-08-01']
返回预期的数据。
导入熊猫文库
进口熊猫作为pd
步骤1:使用pd.to_datetime()方法将日期列转换为字符串
df['date']=pd.to_datetime(df["date"],unit='s')
第二步:以任何预定的方式进行筛选(即2个月)
df = df[(df["date"] >"2022-03-01" & df["date"] < "2022-05-03")]
步骤3:检查输出
print(df)
如果日期在索引中,则简单地:
df['20160101':'20160301']
根据我的经验,前面的答案是不正确的,你不能传递一个简单的字符串,需要一个datetime对象。所以:
import datetime
df.loc[datetime.date(year=2014,month=1,day=1):datetime.date(year=2014,month=2,day=1)]