本文介绍了如果不是“月末",如何在 pandas 数据框中排除日期?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有以下数据集:
import datetime
import pandas as pd
df = pd.DataFrame({'PORTFOLIO': ['A', 'A', 'A', 'A','A', 'A', 'A', 'A','A', 'A','A', 'A', 'A', 'A'],
'DATE': ['28-02-2018','31-03-2018','30-04-2018','31-05-2018','30-06-2018','31-07-2018','31-08-2018',
'30-09-2018','31-10-2018','30-11-2018','31-12-2018','31-01-2019','28-02-2019','05-03-2019'],
'IRR': [.7, .8, .9, .4, .2, .3, .4, .9, .7, .8, .9, .4,.7, .8],
})
df
PORTFOLIO DATE IRR
0 A 2018-02-28 0.7
1 A 2018-03-31 0.8
2 A 2018-04-30 0.9
3 A 2018-05-31 0.4
4 A 2018-06-30 0.2
5 A 2018-07-31 0.3
6 A 2018-08-31 0.4
7 A 2018-09-30 0.9
8 A 2018-10-31 0.7
9 A 2018-11-30 0.8
10 A 2018-12-31 0.9
11 A 2019-01-31 0.4
12 A 2019-02-28 0.7
13 A 2019-05-03 0.8
您可能会看到,所有日期都是月末",除了05-03-2019.我需要的是删除DATE值(如果不是月末").
s you might see, all the dates are "end of month", except for 05-03-2019. What I need is to drop a DATE-value if its not "end of month".
我可怜的临时解决方案是
My poor temperary solution is
df2=df[df.TODATE < '2019-03-01']
这不好,因为代码应该更通用.
which is not good as the code should be more general.
我该怎么做?
推荐答案
这可以单行完成:使用 pandas.Series.dt.is_month_end
This can be done in a one-liner:use pandas.Series.dt.is_month_end
df[pd.to_datetime(df["DATE"]).dt.is_month_end]
将为您提供结果.
这篇关于如果不是“月末",如何在 pandas 数据框中排除日期?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!