我正在使用熊猫清理数据库,并且在数据框中有日期列表,所有日期的格式如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,python,date 来源: https://codeday.me/bug/20191111/2019632.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。