在Python中从数据框中提取某些日期

我正在使用熊猫清理数据库,并且在数据框中有日期列表,所有日期的格式如2017年6月8日,2017年6月12日等.我想从日期中抽出日期少于14天的所有行.谢谢

解决方法:

演示:

In [118]: df = pd.DataFrame({'date': pd.date_range(end='2017-05-05', freq='9D', periods=20)}) \
                 .sample(frac=1).reset_index(drop=True)

In [119]: df
Out[119]:
         date
0  2016-11-15
1  2017-03-30
2  2017-01-17
3  2017-04-17
4  2017-03-12
5  2017-02-22
6  2017-01-08
7  2017-04-26
8  2017-05-05
9  2016-12-03
10 2017-03-03
11 2016-12-21
12 2017-02-04
13 2017-04-08
14 2017-03-21
15 2016-11-24
16 2017-01-26
17 2016-12-30
18 2017-02-13
19 2016-12-12

In [120]: df.loc[df.date > pd.datetime.Now() - pd.timedelta('14 days')]
Out[120]:
        date
7 2017-04-26
8 2017-05-05

相同的解决方案,但对于日期(作为字符串):

In [122]: df['dt_str'] = df.date.dt.strftime('%d-%b-%Y')

In [123]: df
Out[123]:
         date       dt_str
0  2016-11-15  15-Nov-2016
1  2017-03-30  30-Mar-2017
2  2017-01-17  17-Jan-2017
3  2017-04-17  17-Apr-2017
4  2017-03-12  12-Mar-2017
5  2017-02-22  22-Feb-2017
6  2017-01-08  08-Jan-2017
7  2017-04-26  26-Apr-2017
8  2017-05-05  05-May-2017
9  2016-12-03  03-Dec-2016
10 2017-03-03  03-Mar-2017
11 2016-12-21  21-Dec-2016
12 2017-02-04  04-Feb-2017
13 2017-04-08  08-Apr-2017
14 2017-03-21  21-Mar-2017
15 2016-11-24  24-Nov-2016
16 2017-01-26  26-Jan-2017
17 2016-12-30  30-Dec-2016
18 2017-02-13  13-Feb-2017
19 2016-12-12  12-Dec-2016

In [124]: df.loc[pd.to_datetime(df['dt_str'], errors='coerce') >= pd.datetime.Now() - pd.timedelta('14 days')]
Out[124]:
        date       dt_str
7 2017-04-26  26-Apr-2017
8 2017-05-05  05-May-2017

相关文章

转载:一文讲述Pandas库的数据读取、数据获取、数据拼接、数...
Pandas是一个开源的第三方Python库,从Numpy和Matplotlib的基...
整体流程登录天池在线编程环境导入pandas和xrld操作EXCEL文件...
 一、numpy小结             二、pandas2.1为...
1、时间偏移DateOffset对象DateOffset类似于时间差Timedelta...
1、pandas内置样式空值高亮highlight_null最大最小值高亮背景...