根据日期列熊猫过滤数据框
Posted
技术标签:
【中文标题】根据日期列熊猫过滤数据框【英文标题】:Filter data frame based on date columns pandas 【发布时间】:2020-05-05 00:52:46 【问题描述】:我有一个如下图所示的 pandas 数据框。
Unit_ID Added_Date Status
105 2019-10-02 07:18:18 Rented
106 2020-15-01 07:18:17 Rented
105 2019-10-02 07:18:19 Rented
108 2020-15-01 07:18:18 Vacant
从上面我想根据 Date 列找出最近 10 天内添加的 Unit_ID。
预期输出:
Unit_ID Added_Date Status
106 2020-15-01 07:18:17 Rented
108 2020-15-01 07:18:18 Vacant
【问题讨论】:
【参考方案1】:您还可以使用.dt.days
访问器并与le
10 进行比较:
#df['Added_Date']=pd.to_datetime(df['Added_Date'],format='%Y-%d-%m %H:%M:%S')
df[(pd.to_datetime('today') - df['Added_Date'] ).dt.days.le(10)]
Unit_ID Added_Date Status
1 106 2020-01-15 07:18:17 Rented
3 108 2020-01-15 07:18:18 Vacant
【讨论】:
【参考方案2】:这是一种方法:
today = pd.to_datetime('today')
n = 10 # last n days
filter_criteria = df['Added_Date'].sub(today).abs().apply(lambda x: x.days <= n)
df.loc[filter_criteria]
Unit_ID Added_Date Status
106 106 2020-01-15 07:18:17 Rented
108 108 2020-01-15 07:18:18 Vacant
【讨论】:
【参考方案3】:这是使用pd.DateOffset
的另一种方式
from datetime import datetime
df.loc[df['Added_Date'] >= (datetime.today() - pd.DateOffset(days=10))]
Unit_ID Added_Date Status
1 106 2020-01-15 07:18:17 Rented
3 108 2020-01-15 07:18:18 Vacant
【讨论】:
以上是关于根据日期列熊猫过滤数据框的主要内容,如果未能解决你的问题,请参考以下文章