gpt4 book ai didi

python - 从python中的数据框中提取某些日期

转载 作者:太空宇宙 更新时间:2023-11-03 15:55:09 25 4
gpt4 key购买 nike

我正在使用 pandas 来清理数据库,并且我在数据框中有一个日期列表,所有格式均为 08-Jun-2017 、 12-Jun-2017 等。我想拉出日期距离当前日期少于 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

关于python - 从python中的数据框中提取某些日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43800994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com