是否有一种简单的方法来隔离数据框架中YYYY-MM-DD格式的给定日期间隔?



是否有一种简单的方法可以在数据框架中隔离YYYY-MM-DD格式的给定日期间隔?比如只包括2005-2014年之间的日期,并从数据框架中删除其他日期

是否有一种方法可以将正则表达式集成到此,或者它太难了?

这是可能的:

>>> df
date
0  2000-12-31
1  2001-12-31
2  2002-12-31
3  2003-12-31
4  2004-12-31
5  2005-12-31
6  2006-12-31
7  2007-12-31
8  2008-12-31
9  2009-12-31
10 2010-12-31
11 2011-12-31
12 2012-12-31
13 2013-12-31
14 2014-12-31
15 2015-12-31
16 2016-12-31
17 2017-12-31
18 2018-12-31
19 2019-12-31
20 2020-12-31
>>> df[(df['date'].dt.year >= 2005) & (df['date'].dt.year <= 2014)]
date
5  2005-12-31
6  2006-12-31
7  2007-12-31
8  2008-12-31
9  2009-12-31
10 2010-12-31
11 2011-12-31
12 2012-12-31
13 2013-12-31
14 2014-12-31

或字符串版本:

>>> df[(df['date'] >= '2004') & (df['date'] <= '2014')]

或:

>>> df[df['date'].between('2004', '2014')]

您可以使用between操作符,它既适用于日期,也适用于数字和字符串。参见下面的示例-

df = pd.DataFrame({"A": [datetime(2020, 1,1), datetime(2019,1,1), datetime(2018,1,1)], 'B': ['2020-01-01', '2019-01-01', '2018-01-01']})
df[df['B'].between('2018-06-01', '2021-01-01')]
A           B
0 2020-01-01  2020-01-01
1 2019-01-01  2019-01-01
df[df['A'].between(datetime(2018,6,1), datetime(2021,1,1))]
A           B
0 2020-01-01  2020-01-01
1 2019-01-01  2019-01-01

相关内容

最新更新