微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如果不是“月底”,如何在Pandas Dataframe中排除日期

我有以下数据集:

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值.

我糟糕的时态解决方案是

df2=df[df.TODATE < '2019-03-01']

这不好,因为代码应该更通用.

我怎么做?

解决方法:

这可以在单行中完成:
使用pandas.Series.dt.is_month_end

df[pd.to_datetime(df["DATE"]).dt.is_month_end]

会给你你的结果.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐